Думаю, я нашел надежный ответ ! Мне пришлось, поскольку приведенные выше ответы неоднозначны и кажутся противоречивыми. Я просмотрел поваренные книги и руководства по программированию.
Во-первых, стиль addObserver:
in viewWillAppear:
и removeObserver:
in viewWillDisappear:
у меня не работает (я тестировал его), потому что я отправляю уведомление в контроллер дочернего представления для выполнения кода в контроллере родительского представления. Я бы использовал этот стиль только в том случае, если бы отправлял и слушал уведомление в том же контроллере представления.
Ответ, на который я буду полагаться больше всего, я нашел в книге «Программирование для iOS: руководство Big Nerd Ranch Guide 4th». Я доверяю ребятам из BNR, потому что у них есть учебные центры iOS, и они не просто пишут очередную кулинарную книгу. Вероятно, в их интересах быть точными.
БНР, пример первый: addObserver:
в init:
, removeObserver:
вdealloc:
БНР, пример второй: addObserver:
в awakeFromNib:
, removeObserver:
вdealloc:
… При удалении наблюдателя dealloc:
они не используют[super dealloc];
Надеюсь, это поможет следующему человеку ...
Я обновляю этот пост, потому что Apple теперь почти полностью отказалась от раскадровок, поэтому вышеупомянутое может не относиться ко всем ситуациям. Важная вещь (и причина, по которой я добавил этот пост в первую очередь) - обратить внимание, если вам viewWillDisappear:
звонят. Когда приложение вошло в фоновый режим, это было не для меня.