2010-11-27 5 views

Répondre

3

Crrrrrraaassshh!

+0

pouvez-vous m'expliquer? – Rocky

+1

Alloc/retain/release est un peu comme un chien en laisse (ou en laisse). Vous allouez votre objet - vous mettez votre chien en laisse. Vous retenez deux fois - 2 personnes de plus viennent et mettent aussi des pistes sur votre chien. Le chien ne peut pas s'enfuir comme il est maintenant sur 3 fils. Même si une prise de mon avance, le chien ne sera pas libre jusqu'à ce que les 3 pistes aient été enlevées. c'est-à-dire que si vous libérez l'objet 3 fois, il sera libéré. Ce que vous dites, c'est que vous voulez libérer l'objet 4 fois. Eh bien, j'ai peur après la troisième sortie que votre chien a couru chassant les écureuils et votre 4ème version va planter votre application. Vous devriez lire les docs de la pomme. – hooleyhoop

1

L'objet sera dealloced après la troisième version (lorsque les retainCount atteint zéro) et le quatrième release sera envoyé à un objet non valide, ce qui entraîne dans un accident.

Si vous voulez qu'un objet existe pendant un petit moment après l'avoir publié, vous devriez regarder dans la méthode autorelease.

+1

'retainCount' ne peut jamais atteindre zéro .... bien que le nombre de retenue d'un objet puisse. ;) – bbum

+0

Je ne t'ai pas eu – Rocky