2010-03-01 3 views
1

Voilà ma compréhension de celui-ci:Est-ce un résumé correct du comptage des références Cocoa?

objet sont seulement retenus (compteur de référence est incrémenté):

  1. quand init de NSObject est appelé. Lorsque retain est appelé

Les objets sont seulement libérés (compteur de référence est décrémenté):

  1. quand release est appelé.
  2. quand une piscine autorelease contenant l'objet est drainée

Et pour clarifier les choses, autorelease ne fait pas retiendrez, mais met tout l'objet dans le plus haut sommet piscine sur la pile de la piscine autorelease.

Répondre

3

n °

init ne conserve pas, et il y a diverses méthodes que vous n'avez pas mentionnées qui le font. Il y a un résumé simple (et correct) dans Memory Management Programming Guide for Cocoa.

(Il y a deux exceptions que je connais:. Les NSPropertyListSerialization méthodes qui fournissent une chaîne d'erreur retenue par référence)

+1

Les NSPropertyListSerialization docs vous dire explicitement que la méthode en question enfreint les règles, aussi. – Chuck

+1

Un autre bon résumé est dans les compétences de base de cacao: http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/MemoryManagement.html –

+1

Comme est le propre de Peter http://boredzo.org/ cacao-intro/ –