ios nsnotifications

ios - Elimine Observer cuando use addObserverForName: usingBlock



nsnotifications (1)

Tengo el siguiente código que agrega un observador en la carga de la vista.

- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserverForName:@"com.app.livedata.jsonupdated" object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) { NSLog(@"JSONUPDATED"); }]; }

Y esto dispara bien. Sin embargo, cuando se descarga la vista y confirmo que se llama dealloc, la Notificación aún se está disparando.

¿Parece que no hay un método para desactivar este observador?


Parece que la solución es rastrear el objeto en la Vista y luego puede hacer referencia a él en los métodos de dealloc.

id observer = [[NSNotificationCenter defaultCenter] addObserverForName: /* ... */ ];

Y luego eliminar de la siguiente manera:

[[NSNotificationCenter defaultCenter] removeObserver:observer]; observer = nil;