【发布时间】:2012-03-28 12:35:13
【问题描述】:
我在viewDidLoad 方法中注册了一个NSNotification。
我应该使用下面的代码在viewDidUnload 和dealloc 方法中注销它吗?
[[NSNotificationCenter defaultCenter] removeObserver:self];
谢谢。
【问题讨论】:
标签: iphone ios ipad nsnotification
我在viewDidLoad 方法中注册了一个NSNotification。
我应该使用下面的代码在viewDidUnload 和dealloc 方法中注销它吗?
[[NSNotificationCenter defaultCenter] removeObserver:self];
谢谢。
【问题讨论】:
标签: iphone ios ipad nsnotification
是的,你应该这样做。 viewDidUnload 在视图控制器被释放时不会被调用。
因为 viewDidLoad 是在视图控制器打开时调用的,所以人们有时会错误地认为它的对立面 (viewDidUnload) 是在屏幕关闭时调用的。事实并非如此, viewDidUnload 仅在内存不足的情况下使用。
这就是为什么我们也需要取消注册 dealloc 中的通知。
【讨论】: