iphone - ¿Se necesita NSNotificationCenter removeObserver en ARC?
ios objective-c (1)
Deberías eliminar explícitamente al observador incluso si usas ARC
. Cree un método dealloc
y elimínelo ..
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
Si ve el método, no necesita llamar a [super dealloc];
aquí, solo se necesita el método sin super dealloc.
ACTUALIZAR para Swift
Puede eliminar el observador en el método deinicio si está escribiendo código rápidamente.
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
Esta pregunta ya tiene una respuesta aquí:
- KVO y ARC cómo eliminarObserver 3 respuestas
- En ARC, ¿necesitamos enviar removeObserver: explícitamente? 4 respuestas
¿Agregar un observador aumenta el conteo de retención de un objeto? En caso afirmativo, ¿ARC maneja la eliminación de este observador también? Si no, ¿dónde debería eliminar al observador?