je la méthode suivante qui est engendré par un appel à un nouveau thread (en utilisant NSThread):Fidéliser un objet créé dans un NSThread
- (void) updateFMLs {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSArray *temp = [[NSArray alloc] initWithArray:someArrayFromAnotherProcess];
[self performSelectorOnMainThread:@selector(doneLoading:) withObject:temp waitUntilDone:NO];
[pool release];
}
Ma méthode doneLoading:
ressemble à ceci:
- (void) doneLoading:(NSArray *)obj {
myArray = [[NSArray alloc] initWithArray:obj copyItems:NO];
}
Le contenu de myArray
n'est plus valide. Comment puis-je conserver le contenu de myArray
afin de pouvoir les utiliser plus tard dans mon application?
P.S. myArray
est défini dans le fichier d'en-tête de classe.
Qu'entendez-vous par "devenir invalide". Sont-ils désaffectés? –
BTW, vous fuyez le tableau "temp". Vous allouez un tableau (+1 retain count), mais vous ne le libérez jamais. –
oui ils semblent être désaffectés pendant que je progresse dans doneLoading ... même si rien dans doneLoading, sauf pour la ligne montrée ci-dessus, altère myArray en aucune façon – zpesk