Где я должен удалить уведомление наблюдателя? - PullRequest
5 голосов
/ 14 января 2011

Я настроил наблюдателя уведомлений в методе init моего контроллера вида следующим образом:

[[NSNotificationCenter defaultCenter] 
                    addObserver:self
                    selector:@selector(saveState)
                    name:UIApplicationWillResignActiveNotification
                    object:nil];

Где лучше всего позвонить removeObserver:name:object: для этого уведомления. В настоящее время я вызываю его в моем dealloc методе, но хотел знать, может ли это вызвать проблемы.

Ответы [ 3 ]

8 голосов
/ 14 января 2011

Нет, вы правильно поняли.dealloc - это правильное место для удаления наблюдателей-уведомлений (если у вас нет особых причин для того, чтобы удалить наблюдателя раньше).

1 голос
/ 14 января 2011

Если -saveState нужно выполнить только один раз, когда он активен, то вы можете удалитьObserver внутри -saveState .

1 голос
/ 14 января 2011

Вы всегда можете удалить наблюдателя в viewWillDisappear:, или когда вы закончили использовать его и больше не нужны, вы можете поместить его в функцию.

...