我有一个奇怪的问题。
我有一个方法可以像这样调用通知中心来发送通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"NIDNewDataSetNotification" object:self];
如果我在发送通知之前对时间进行 NSLog,我会看到它每秒发送一次,这是应该的。
我在另一个对象中有一个方法,它像这样将自己添加为观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveDataNotification:) name:@"NIDNewDataSetNotification" object:nil];
但是,通过 NSLogging 时间,我看到它每秒收到四次通知(所有四次都在大约 0.001 秒内)。
没有发送其他通知。如果我注释掉发送通知的行,则不会调用我捕获通知的方法。
有什么想法吗?
最佳答案
我能想到可能发生这种情况的两种情况:
1) 您是否以某种方式多次注册通知?也许在你注册之前抛出一个 NSLog(@"registering...")
语句来确保你只看到它一次。
2) 您要取消注册该事件吗?那能不能坏掉或者不叫?也许也在那里放一个 NSLog 语句以确保它被调用,并确保您正在删除正确的委托(delegate)和通知的观察者。
关于iphone - 收到通知的频率比发送通知的频率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7003181/