2012-05-05 8 views
11

tengo una clase con esta llamada de método dentro dealloc:¿Dónde ponemos el código que estaba en -dealloc cuando convertimos a ARC?

- (void)dealloc { 

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [super dealloc]; 
} 

Dónde puedo alejarme del centro de notificación una vez que convierto la clase a ARC? ¿Debería ir dentro de viewDidUnload? La notificación se usa para escuchar eventos que provienen de un controlador de vista modal, por lo que no puedo poner este código en viewWillDisappear.

Respuesta

19

El dealloc se queda en ARC, simplemente es que ya no debe llamar al [super dealloc]: el compilador inserta el código por usted. Y, por supuesto, todas las llamadas a release no pueden realizarse en dealloc (o en otro lugar).

- (void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    // [super dealloc]; <<== Compiler inserts this for you 
} 
Cuestiones relacionadas