2010-10-17 6 views
0

J'ai un tableau de 5 objets.Affectation d'une valeur d'un tableau à une chaîne

Je veux assigner un objet qui est à l'index 1 à un NSSTRING. Je sais que c'est une fausse syntaxe, c'est un objet qui revient, quelque chose comme ça.

comment puis-je obtenir la valeur qui est à l'index 1 et l'assigner à une chaîne?

concernant

+0

Quelle est la question concrète? Votre code est correct et obtient le 2ème élément du tableau. – Eiko

+0

@ Eiko .... est-ce ?? mais c'est donner , objet pas la valeur. – iscavengers

+0

Voir les réponses - le code est le même. Peut-être que c'est un problème avec les données elles-mêmes, ou la façon dont vous l'utilisez. – Eiko

Répondre

2

Les tableaux sont basés à zéro dans les terres Objective-C. Donc ...

NSArray *array = [NSArray arrayWithObjects:@"one", @"two", nil]; 
NSString *abc = [array objectAtIndex:1]; 

Renvoie le deuxième objet dans le tableau. Zéro retournerait le premier.

+3

Pourquoi créez-vous un objet dans la ligne 1 et le jetez-vous dans le 2ème? – Eiko

+1

parce que les fuites sont cool! – Jack

+0

Prenez le temps, n'a pas fini d'éditer la réponse. Gee Whiz2 – Jordan

7

Erm .. c'est la syntaxe correcte :)

Outre le nom de la classe chaîne:

NSString *abc = [array objectAtIndex:1]; 

l'esprit que cela ne crée pas une copie de la chaîne, si vous avez besoin copier utiliser

NSString *abc = [NSString stringWithString:[array objectAtIndex:1]]; 

Comme Eiko note, vous pouvez copier directement l'objet de chaîne si vous devez:

NSString *abc = [[array objectAtIndex:1] copy]; 
+0

Pourquoi ne pas simplement copier [[array objectAtIndex: 1]]? – Eiko

+0

C'est vrai, parce que je pensais que cela le rendrait confus, laissez-moi l'ajouter – Jack

+0

-1 Parce que vous avez copié ma réponse. – Jordan

Questions connexes