View Controller-Freigabe wird bei Verwendung der NSNotificationCenter-Codeblockmethode mit ARC nicht aufgerufen
Wenn ich benutze-addObserverForName: object: queue: usingBlock:
zumNSNotificationCenter
in dem-viewDidLoad:
Methode meines View Controllers, die-dealloc
Methode wird nicht aufgerufen.
(Wenn ich entferne-addObserverForName: object: queue: usingBlock:
, -dealloc
wird erneut angerufen.)
Verwenden-addObserver: selector: name: object:
scheint dieses Problem nicht zu haben. Was mache ich falsch? (Mein Projekt verwendet ARC.)
Nachfolgend finden Sie ein Beispiel für meine Implementierung, falls ich hier etwas falsch mache:
[[NSNotificationCenter defaultCenter] addObserverForName:@"Update result"
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
updateResult = YES;
}];
Vielen Dank im Voraus für jede Hilfe.
Ich habe versucht, Folgendes hinzuzufügen (ohne Erfolg):
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self isMovingFromParentViewController]) {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
}