Ho un UIViewController che viene inserito in un controller contenitore e quindi estratto, e utilizzando lo strumento di allocazione, posso vedere che il controller della vista viene distrutto in seguito. Tuttavia, un punto di interruzione nel dealloc del controllore non viene mai raggiunto. Qualcuno sa perché dealloc non viene chiamato? È possibile che ARC distrugga un oggetto senza chiamare dealloc?Dealloc non viene chiamato sull'app ARC
Inoltre, ho disabilitato NSZombies (alcuni hanno detto che possono causare dealloc non sparare).
Edit:
Dealloc non fa molto, stampa solo per la console, e non è mai viene chiamato:
- (void)dealloc { NSLog(@"Deallocating..."); }
non posso postare il controller-it contenitore è proprietario e troppo complicato. Dealloc è chiamato in modo coerente su alcuni controller e non su altri. Se riesco a trovare il tempo cercherò di pubblicare una versione semplificata che riproduca il problema.
Esiste un modo per verificare che NSZombies sia disabilitato?
Edit2
sto postando uno screenshot da strumenti; mi sembra come se stesse dislocando correttamente.
dovrebbe essere sempre chiamati, anche sotto ARC. Non puoi includere [super dealloc], ma ARC lo aggiungerà per te. Forse condividi il codice per questa classe? – picciano
Esistono metodi nel metodo dealloc? – zaph
Dovresti pubblicare il codice '- (void) dealloc {}'. – NJones