2009-08-06 4 views
10

Je crée un NSArray à l'intérieur d'une méthode, je dois donc abandonner avec la version quand j'en ai fini avec elle. Je passe ce tableau à la méthodeDois-je conserver un objet avant de le transmettre à -performSelector: withObject: afterDelay :?

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay 

. Après cela, je n'ai plus besoin du tableau dans ma méthode qui appelle ceci performSelector: withObject: afterDelay :. La documentaton ne dit pas si unArgument va être conservé, donc je me demande si je devais le libérer ou le conserver afin de rester en vie. Qu'est-ce que tu penses?

+2

Commentaire rapide: autorelease ne serait pas utile de toute façon, car qui sait combien de temps le retard serait. Il serait presque assurément plus long que la boucle d'exécution prend pour compléter. –

+1

'-performSelector: withObject: afterDelay:' est garanti pour le cycle suivant de la boucle d'exécution (même si le délai est de 0,0 seconde), ce qui signifie que le pool d'auto-libération sera vidé. –

Répondre

17

Les méthodes performSelector conservent leur récepteur et leur argument.

Questions connexes