收到的通知比收到的更频繁

时间:2011-08-09 21:22:16

标签: iphone objective-c ios xcode nsnotifications

我遇到了一个奇怪的问题。

我有一种通过调用通知中心发送通知的方法,如下所示:

[[NSNotificationCenter defaultCenter] postNotificationName:@"NIDNewDataSetNotification" object:self];

如果我在发送通知之前的NS时间,我发现它每秒发送一次,就像它应该的那样。

我在另一个对象中有一个方法,它将自己添加为观察者,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveDataNotification:) name:@"NIDNewDataSetNotification" object:nil];

然而,通过NSLogging时间,我看到它每秒收到四次通知(所有四次都在.001秒内)。

没有其他通知被发送。如果我注释掉发送通知的行,那么捕获通知的方法就不会被调用。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

我可以想到两种可能发生这种情况的情况:

1)您是否以某种方式多次注册通知?也许在你注册之前抛出一个NSLog(@"registering...")声明,以确保你只看到一次。

2)您是否取消注册活动?可以打破还是不打电话?也许在那里放置一个NSLog语句以确保它被调用,并确保你删除观察者以获得正确的委托&通知。

答案 1 :(得分:0)

是的,我怀疑你每次设置观察者时都会重新注册,而不是在你取下它时取消注册。