Удаление наблюдателя NSNotificationCenter в iOS 5 ARC

У меня есть проект на базе iOS 5 ARC, и я не понимаю, где мне следует удалить наблюдателя для наблюдений NSNotificationCenter , которые я зарегистрировал в UIViewController ]. В аналогичных сообщениях на SO говорилось, что это следует делать с помощью метода -dealloc . Несмотря на то, что этот метод не требуется в проектах ARC, я добавил его с помощью следующего кода:

- (void)dealloc {

    [[NSNotificationCenter defaultCenter] removeObserver:self];

}

В качестве теста я открываю UIViewController (внутри UINavigationController ), делаю некоторые вещи, которые вызывают уведомления, а затем выталкивают их из стека, нажав кнопку «Назад». Затем я снова открываю UIViewController и делаю еще кое-что для запуска уведомлений, но замечаю, что каждый обратный вызов вызывается дважды - это признак того, что предыдущие уведомления не были отменены. Повторение этой процедуры просто приводит к тому, что каждый обратный вызов вызывается более чем несколько раз, поэтому, похоже, они никогда не отменяют регистрацию.

Любая помощь приветствуется!

21
задан Skoota 4 December 2011 в 02:42
поделиться