Travailler avec un objectif de base c exemple ici, a essayé d'utiliser replaceObjectAtIndex pour un tableau et il ne semble pas fonctionner.replaceObjectAtIndex ne semble pas fonctionner
mon code:
NSMutableArray *myArray=[NSMutableArray array];
[myArray addObject:@"First string"];
[myArray addObject:@"Second string"];
[myArray addObject:@"Third string"];
NSString *newElement=[myArray objectAtIndex:1];
NSLog(@"New object at index 1 BEFORE is %@", newElement);
[myArray replaceObjectAtIndex:1 withObject:@"Hello"];
NSLog(@"New object at index 1 AFTER is %@", newElement);
théoriquement la sortie pour newElement devrait maintenant afficher "Bonjour", mais il affiche toujours "deuxième chaîne"
sortie:
2012-05-30 11:21:16.638 cocoa lab[753:403] New object at index 1 BEFORE is Second string
2012-05-30 11:21:16.641 cocoa lab[753:403] New object at index 1 AFTER is Second string
s'il vous plaît conseiller
merci
hmm, pensait que newElement était un pointeur sur l'élément 1 du tableau, donc quand cet élément ont été changés, newElement refléterait il. Je ne pense pas. Merci d'avoir répondu. – Live2Enjoy7
Les tableaux de style C fonctionnent comme vous les décrivez. Un pointeur sur le tableau est juste un pointeur vers le premier élément et vous pouvez ensuite ajouter un multiple de la taille des éléments, pour obtenir un pointeur vers un élément plus bas dans le tableau. L'objectif C 'NSArray's d'un autre côté, sont des objets. Les éléments du tableau sont également des objets. Et tous les pointeurs pointent vers les objets réels, pas un espace réservé dans le tableau. –
@ Live2Enjoy7 'newElement' est une variable locale qui contient un pointeur vers un objet. Si vous ne réinitialisez pas le pointeur pour qu'il pointe vers un autre objet, il pointe toujours sur celui d'origine. – jlehr