Nie można wywoływać kontrolera widoku, gdy używana jest metoda bloku kodu NSNotificationCenter z ARC

Kiedy używam-addObserverForName: object: queue: usingBlock: dlaNSNotificationCenter w-viewDidLoad: metoda mojego kontrolera widoku-dealloc metoda kończy się niepowodzeniem.

(Po usunięciu-addObserverForName: object: queue: usingBlock:, -dealloc jest ponownie wywoływany.)

Za pomocą-addObserver: selector: name: object: wydaje się, że nie ma tego problemu. Co ja robię źle? (Mój projekt używa ARC.)

Poniżej znajduje się przykład mojej implementacji, na wypadek, gdy zrobię coś źle tutaj:

[[NSNotificationCenter defaultCenter] addObserverForName:@"Update result"
                                                  object:nil
                                                   queue:nil
                                              usingBlock:^(NSNotification *note) {
                                                  updateResult = YES;
                                              }];

Z góry dziękuję za wszelką pomoc.

Próbowałem dodać następujące (bezskutecznie):

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

    if ([self isMovingFromParentViewController]) {
        [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
}

questionAnswers(3)

yourAnswerToTheQuestion