我应该在哪里删除通知观察员?

时间:2011-01-13 21:40:28

标签: iphone objective-c cocoa-touch notifications nsnotifications

我在视图控制器的init方法中设置了一个通知观察器,如下所示:

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

此通知的最佳地点removeObserver:name:object:。我目前正在使用dealloc方法调用它,但想知道这是否会导致问题。

3 个答案:

答案 0 :(得分:8)

不,你做对了。 dealloc是删除通知观察者的正确位置(除非您有一些特定的理由需要先删除观察者)。

答案 1 :(得分:1)

您可以随时删除viewWillDisappear:中的观察者,或者当您完成使用它并且没有其它需要时,您可以将它放在一个函数中。

答案 2 :(得分:1)

如果 -saveState 只需要在激活时执行一次,那么您可以在 -saveState 中删除Observer。