2009-11-02 14 views

risposta

22
  • retain aumentare il numero di riferimento di un oggetto
  • release diminuisce il riferimento su un oggetto
  • drain viene usato al posto di rilascio su SOLO per NSAutoreleasePool oggetti a causa di qualche arcana correlato all'obiettivo C garbage collection
  • dealloc viene chiamato dal sistema una volta che il retainCount di un oggetto colpisce 0. È lì che si puliscono varie cose dell'oggetto (come un decostruttore o un finalizzatore). È necessario MAI chiamarlo direttamente, tranne che per chiamare [super dealloc] alla fine delle tue routine dealloc.

Dovresti davvero leggere la gestione della memoria di Apple documentation.

+0

grazie mille ... – suse

+0

-drain è utile su NSAutoreleasePool in modo che funzioni anche in GC. Vale a dire, innesca immediatamente una collezione. Se usassimo -release, quindi sotto GC, quel messaggio verrebbe ignorato e non accadrebbe nulla. – kperryua

+0

+1 per questa grande risposta – swiftBoy

Problemi correlati