So che la gestione della memoria in iOS è complicata per i neofiti come me, ma speravo in una spiegazione chiara qui su StackOverflow che non riuscivo a trovare da nessun'altra parte.autorelease vs. release in dealloc
Quindi, far finta di avere una proprietà/ivar
@property(nonatomic, retain) UIPopoverController *popOver;
che sto assegnando in questo modo:
self.popOver = [[[UIPopoverController alloc] initWithContentViewController:popOverContent] autorelease];
Ora, nel mio dealloc e metodi viewDidUnload, che faccio sia
// in viewDidUnload:
self.popOver = nil;
// in dealloc:
[popOver release];
Domanda:
- Se faccio nil/release in viewDidUnload/dealloc, ho davvero bisogno di autorelease all'assegnazione?
- Viceversa, se eseguo l'autorelease in fase di allocazione, è necessario annullare/rilasciare in un secondo momento?
- Qual è la differenza, se presente?
Grazie in anticipo per il vostro tempo - io continuerò a leggere, sul serio la gestione della memoria non può essere così difficile per avvolgere la testa in giro ...
Grazie per aver modificato il titolo; Ho visto domande simili che avevano "iOS:" di fronte; in realtà è iniziato senza di esso. – pille