Tengo un UIViewController que se coloca en un controlador de contenedor y luego se apaga, y con el instrumento de asignaciones, puedo ver que el controlador de vista se destruye después. Sin embargo, nunca se alcanza un punto de interrupción en el dealloc del controlador. ¿Alguien sabe por qué no se llama dealloc? ¿Es posible que ARC destruya un objeto sin llamar a dealloc?Dealloc no se llama en la aplicación ARC
Además, desactivé NSZombies (algunos han dicho que puede causar que dealloc no se active).
Editar:
dealloc no hace mucho, sólo imprime en la consola, y que nunca se llama:
- (void)dealloc { NSLog(@"Deallocating..."); }
no puedo publicar el controlador-contenedor que es propietario y demasiado complicado. Dealloc se llama constantemente en algunos controladores y no en otros. Si puedo encontrar el tiempo, intentaré y publicaré una versión simplificada que reproduzca el problema.
¿Hay alguna forma de verificar que NSZombies está deshabilitado?
Edit2
les dejo una captura de pantalla de los instrumentos; me parece que está desasignando correctamente.
Se debería estar recibiendo llamados, incluso bajo ARC. Sin embargo, no puede incluir [super dealloc], ARC agregará eso para usted. Tal vez compartir el código para esta clase? – picciano
¿Hay algún método en el método dealloc? – zaph
Debe publicar el código '- (void) dealloc {}'. – NJones