4

Je crée un pool autorelease dans une boucle for (dans la méthode A). A chaque itération de la boucle, j'appelle une autre méthode (méthode B). La méthode B renvoie un objet autoreleased à la méthode A. Si je vide le pool dans la boucle for de la méthode A, les objets envoyés à partir de la méthode B seront-ils libérés?Quelle est la portée des pools autorelease (imbriqués)?

Merci!

Répondre

8

Oui - chaque fois qu'un objet est envoyé -autorelease, il est ajouté au pool autorelease de niveau le plus élevé. Tant que vous ne créez pas de nouveaux pools de libération automatique dans la méthode B ou plus bas dans la pile d'appels, le pool de la méthode A doit être le pool de niveau le plus élevé.

+2

Le seul attrape est les threads - les piles de pool autorelease sont par thread. – Chuck

Questions connexes