nsnotificationcenter方法多次触发

时间:2011-11-25 18:37:20

标签: iphone nsnotification

我有一个viewcontroller。其中有一个nsnotification观察者。我发布了来自另一个viewcontroller的通知。但是nsnotification观察者选择器被触发两次或有时三次。我的问题是,当我使用[view removeFromSuperview]; 要删除此viewcontrollers视图,是否已删除通知观察者?我在viewcontroller类的

的dealloc方法中给出了这个方法
- (void)dealloc {
    [super dealloc];
    [[NSNotificationCenter defaultCenter] removeObserver:self];

}

2 个答案:

答案 0 :(得分:2)

没有

当viewcontrollers保持计数变为0时,将调用该方法

您应该添加另一个方法,当从另一个viewcontroller中删除视图并调用

时将调用该方法
[[NSNotificationCenter defaultCenter] removeObserver:self];

对于多次调用选择器的问题,我需要查看更多代码 - 确保发布通知的代码行不被多次调用

答案 1 :(得分:1)

NSNotification注册到整个应用程序(甚至是所有操作系统),而不是单个视图或视图控制器。如果不再使用,则需要在操作中删除观察者。在这种情况下,您只能处理一个已发布的通知。