2010-06-07 5 views
3
unichar myChar = [myString characterAtIndex:0]; 
[myNSMutableArray addObject:myChar]; 

J'essaie d'insérer le premier caractère d'une chaîne dans un tableau, pour créer un tableau de caractères. la première ligne ne me donne pas une erreur. La deuxième ligne, cependant, fournit l'erreur suivante: warning: passing argument 1 of 'addObject:' makes pointer from integer without a castObjective-C: Initialiser char avec char à l'index de la chaîne

Cela bloque également l'application avec une erreur de "mauvaise adresse". Je pensais que cette erreur était due à un problème d'allocation de mémoire. Quelqu'un peut-il nous éclairer à ce sujet.

Répondre

4

Une option serait d'ajouter le caractère à votre tableau comme une chaîne:

unichar myChar = [myString characterAtIndex:0]; 
NSString * charString = [NSString stringWithFormat:@"%c", myChar]; 
[myNSMutableArray addObject:charString]; 

Notez que ceci est probablement excessif.

+0

Cela m'a donné exactement ce que je cherchais, merci. –

5

Vous pouvez uniquement ajouter des objets à un tableau. unichar est un type de données primitif. Vous devez l'envelopper dans un NSNumber. Un unichar est un unsigned short, vous pouvez donc utiliser:

[myNSMutableArray addObject:[NSNumber numberWithUnsignedShort:[myString characterAtIndex:0]]]; 
+0

J'ai vu cette fonction plus tôt mais c'est pour un nombre. J'essaie de faire l'équivalent avec un personnage réel. Je n'ai pas trouvé la fonction équivalente pour un personnage, j'ai donc écrit le code original que j'ai posté. Y a-t-il une fonction similaire pour un personnage ou n'est-ce pas normalement fait dans l'objectif-c? (Désolé, je suis nouveau dans la langue) –

+0

Un caractère * est * essentiellement un nombre (en fait, un 'unichar' est juste un 'short non signé'). – mipadi

+0

Ensuite, il n'y a aucun moyen d'obtenir le caractère à l'index 0 pour le mot "String", et obtenir la lettre S retourné? Je m'excuse pour la confusion, peut-être que ce n'est pas un personnage dont j'ai besoin, peut-être que c'est quelque chose d'autre? –