5
Ciao voglio sapere la differenza tra drain, release, dealloc e retain in Objective-C.differenza tra drain, release, dealloc e retain in Objective-C/
Ciao voglio sapere la differenza tra drain, release, dealloc e retain in Objective-C.differenza tra drain, release, dealloc e retain in Objective-C/
retain
aumentare il numero di riferimento di un oggettorelease
diminuisce il riferimento su un oggettodrain
viene usato al posto di rilascio su SOLO per NSAutoreleasePool oggetti a causa di qualche arcana correlato all'obiettivo C garbage collectiondealloc
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.
grazie mille ... – suse
-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
+1 per questa grande risposta – swiftBoy