Уведомление получено чаще, чем отправлено - PullRequest
0 голосов
/ 10 августа 2011

У меня странная проблема.

У меня есть метод, который отправляет уведомления путем вызова в центр уведомлений, например:

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

Если я NSLog время прямо передотправляя уведомление, я вижу, что оно отправляет каждую секунду, как и должно.

У меня есть метод в другом объекте, который добавляет себя в качестве наблюдателя, например:

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

Однако, поNSLogging время, я вижу, что он получает уведомление четыре раза в секунду (все четыре в течение примерно .001 секунд).

Другие уведомления не отправляются.Если я закомментирую строку, которая отправляет уведомление, мой метод, который перехватывает уведомление, не вызывается.

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 10 августа 2011

Я могу вспомнить два случая, когда это может произойти:

1) Вы как-то регистрируетесь для уведомления несколько раз?Может быть, выведите оператор NSLog(@"registering...") прямо перед регистрацией, чтобы убедиться, что вы видите его только один раз.

2) Вы не зарегистрировались для участия в мероприятии?Это могло быть сломано или не названо?Возможно, поместите туда заявление NSLog, чтобы убедиться, что он вызывается, и убедитесь, что вы удаляете наблюдателя для правильного делегата и уведомления.

0 голосов
/ 10 августа 2011

Да, я подозреваю, что вы регистрируетесь каждый раз, когда настраиваете своего наблюдателя, и не отменяете регистрацию, когда снимаете его.

...