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

Ran*_*all 0 iphone xcode objective-c nsnotifications ios

我有一个奇怪的问题.

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

[[NSNotificationCenter defaultCenter] postNotificationName:@"NIDNewDataSetNotification" object:self];
Run Code Online (Sandbox Code Playgroud)

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

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

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveDataNotification:) name:@"NIDNewDataSetNotification" object:nil];
Run Code Online (Sandbox Code Playgroud)

但是,通过NSLogging时间,我看到它每秒收到四次通知(所有四次都在0.001秒内).

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

有任何想法吗?

ben*_*ree 6

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

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

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