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

Iphone 我应该在哪里删除通知观察员?,iphone,objective-c,cocoa-touch,notifications,nsnotifications,Iphone,Objective C,Cocoa Touch,Notifications,Nsnotifications,我在视图控制器的init方法中设置了一个通知观察者,如下所示: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveState) name:UIApplicationWillResignActiveNotification objec

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

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

对于此通知,哪里是调用
removeObserver:name:object:
的最佳位置。我目前正在我的
dealloc
方法中调用它,但我想知道这是否会导致问题。

不,你说得对<代码>解除锁定是删除通知观察者的正确位置(除非您有某些特定原因需要提前删除该观察者)。

您始终可以在
视图中删除该观察者将消失:
,或者当您使用完该观察者并且没有其他需要时,您可以将其放置在函数中。

如果-saveState在激活时只需要执行一次,那么您可以在-saveState中移除观察者

据推测,如果应用程序处于活动状态,然后再次退出活动状态,他可能会再次保存。你说得对。我假设当应用程序激活时,他将再次注册为观察者。我只是以
saveState
为例,但可能需要反复调用(例如当应用程序进入后台时),因此我更喜欢使用
dealoc
。谢谢,很高兴得到确认。请您发布官方文档的参考。除非视图将再次出现。如果我在
视图中启动通知观察者,我认为您的方法会起作用: