在我的viewDidLoad
中,我将我的控制器添加为两个通知的观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:NetworkStatusChangedNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLocationStatus:) name:LocationStatusChangedNotification object:nil];
在我dealloc
中,我应该删除一次还是两次? removeObserver方法似乎没有指定特定的通知。
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[NSNotificationCenter defaultCenter] removeObserver:self]; // is this required?
答案 0 :(得分:5)
您只需将其删除一次。
如果您需要,还可以使用-removeObserver:name:object:
停止观察其中一个通知。
答案 1 :(得分:2)
Documentation是消除疑虑的最好方法:
The following example illustrates how to unregister someObserver for all
notifications for which it had previously registered:
[[NSNotificationCenter defaultCenter] removeObserver:someObserver];
答案 2 :(得分:1)
参考资料:
RemoveObserver: 从接收者的调度表中删除指定给定观察者的所有条目。
所以你只需要调用一次