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
。谢谢,很高兴得到确认。请您发布官方文档的参考。除非视图将再次出现。如果我在视图中启动通知观察者,我认为您的方法会起作用:
。