Dans mon programme, j'ai deux classes: Collector et entité. Le collecteur stocke les entités dans NSMutableArray. Les collecteurs sont également stockés dans NSMutableArray (appelons-les collecteurs). Ensuite, j'ai un tel code (quelque chose comme ça):Objective-C: objet changeant à l'intérieur NSMutableArray
for (uint i = 0; i < [collectors count]; i++) {
Collector *curCollector = [[collectors objectAtIndex:i] retain];
Entity *curEntity = [[Entity alloc] init];
[curCollector addEntity:curEntity];
[curCollector setSomeInt:50];
[curEntity release];
[curCollector release];
}
Après l'exécution de cette partie de code, je n'ai pas de nouvelles entités à l'intérieur des collectionneurs, mais les changements de valeur SomeInt correctement. De plus, quand je déboguer mon code, à l'étape avant de libérer des variables, curCollector contient nouvelle entité et a une adresse, même comme l'un des objets à l'intérieur tableau collectionneurs, mais cet objet (dans le tableau de collection) n'a aucune entité.
Qu'est-ce que je fais mal?
P.S .:
Pendant le débogage, j'ai vérifié tous les objets - aucun fichier trouvé (en particulier pour les entités).
A propos addObject - tout le code de mise en œuvre est [entities addObject:newEntity];
Et une autre chose intéressante (aller dans mon explication ci-dessus) - valeur int est correctement réglée (objets de la gamme des collecteurs contiennent SomeInt == 50).
P.P.S: J'ai ajouté une ligne avant de libérer les parties de code:
[collectors replaceObjectAtIndex:i withObject:curCollector];
Aucun résultat !!
Il est impossible curCollector d'avoir une entité et l'entrée des collectionneurs ont pas une entité si elles sont le même objet (qui est ce que je pense que vous dites). – nall
Je n'ai aucune idée. Peut-être regarder de plus près la méthode addEntity :. – yehnan
Assurez-vous également que le membre de votre entité n'est pas nul. Il semble que ce ne soit pas basé sur vos commentaires, mais cela pourrait être le problème (c'est difficile à dire sans plus de code). – nall