Как говорит Конрад, наблюдатели должны быть добавлены и удалены сами по себе ...
Используйте лучшие практики для определения имени уведомлений в виде статических констант, например:
static NSString *const kMyNotification = @"myNotification";
Почему?потому что есть риск, что оба @ "myNotification" могут быть двумя разными объектами, и тогда NotificationName будет другим, и вы не получите уведомление.Поскольку я всегда объявляю их как статические константы, у меня никогда не было проблем с NSNotifications.
Затем используйте его следующим образом:
Чтобы зарегистрировать наблюдателя
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(doThis:)
name: kMyNotification
object: nil];
Чтобы опубликовать уведомление
[[NSNotificationCenter defaultCenter] postNotificationName: kMyNotification
object: nil];
Чтобы удалить наблюдателя:
[[NSNotificationCenter defaultCenter] removeObserver: self];