您好我正在开发iPhone应用程序,我正在注册UIApplicationWillEnterForegroundNotification以进行通知。但是当我试图取消注册那个观察者时,它就无法工作了。它仍然被调用。我的代码看起来像
在viewDidLoad方法中我正在注册
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationBecomeActive)
name:UIApplicationWillEnterForegroundNotification
object:nil];
在我的注销方法中,我试图像这样删除这个观察者
[[NSNotificationCenter defaultCenter] removeObserver:UIApplicationWillEnterForegroundNotification];
但这不起作用。难道我做错了什么。需要一些帮助。谢谢。
答案 0 :(得分:6)
那是因为你没有删除观察者。
注意你的添加观察者方法:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationBecomeActive)
name:UIApplicationWillEnterForegroundNotification
object:nil];
重要的部分是addObserver:self
因此,为了删除观察者,你可以:
[[NSNotificationCenter defaultCenter] removeObserver:self];
或者如果您只想删除特定通知名称:
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIApplicationWillEnterForegroundNotification object:nil];