我有一个NSNotification
被称为两次的观察者。我不知道该怎么办。
我用谷歌搜索,但没有找到解决方案。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(connectedToServer:) name:@"ConnectedToServer" object:nil];
- (void)connectedToServer:(NSNotification*)notification {
[[NSNotificationCenter defaultCenter] postNotificationName:@"SendMessageToServer" object:message];
}
解决方案1:第一件事是检查通知本身是否发布了两次。
方案2:即使通知发布一次,该行动将被称为很多时候你已经添加了观察员通知(不论该通知相同与否)。例如,以下两行将两次self
为同一notification(aSelector
)注册观察者()。
[[NSNotificationCenter defaultCenter] addObserver:self selector:aSelector name:aName object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:aSelector name:aName object:nil];
您必须找到第二次添加观察者的位置,然后将其删除。还要确保添加观察者的代码不会被调用两次。
解决方案3:如果不确定是否已添加观察者,则只需执行以下操作。这将确保仅将观察者添加一次。
[[NSNotificationCenter defaultCenter] removeObserver:self name:aName object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:aSelector name:aName object:nil];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句