2011-01-08 1 views
4

Je suis habitué à le faire en C ou C++, à savoir:Est-il possible d'incrémenter une lettre, c'est-à-dire A + 1 = B en Objective-C?

myChar++; 

devrait incrémenter une lettre. J'essaye de faire la même chose en Objective-C, sauf que j'ai un NSString pour commencer (le NSString est toujours juste une lettre). J'ai essayé de convertir le NSString à un char *, mais cette méthode est dépréciée et d'autres façons de parvenir à cela ne semblent pas fonctionner.

Comment est-ce que je devrais convertir un NSString en char * - ou, est-il un moyen d'incrémenter un caractère dans l'objectif-c sans avoir besoin d'un char * en quelque sorte?

Merci :)

Répondre

12
// Get the first character as a UTF-16 (2-byte) character: 
unichar c = [string characterAtIndex:0]; 
// Increment as usual: 
c++; 
// And to turn it into a 1-character string again: 
[NSString stringWithCharacters:&c length:1]; 

Bien sûr, cela suppose incrémenter un caractère Unicode est logique, qui fait pour les caractères ASCII portée mais probablement pas pour les autres.

+6

'C++;' m'a fait rire. – BoltClock

+0

Merci, fonctionne comme un charme! J'ai passé des années à chercher quelque chose comme "characterAtIndex" et je ne pouvais pas le voir :) –

+0

La ligne du bas du code a un extra "Avec" - juste au cas où quelqu'un essaye de copier ceci. –

1

Que diriez-vous de

NSString
- (unichar)characterAtIndex:(NSUInteger)index; 

Est-ce que ça marche?

Questions connexes