Я пытаюсь получить один экземпляр использования NSNotificationCenter
с addObserver
и postNotificationName
но я не могу разработать, почему это не будет работать.
У меня есть 2 строки для кодирования, чтобы добавить наблюдателя и отправить сообщение в 2 различных классах
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(newEventLoaded:) name:@"Event" object:nil];
и
[[NSNotificationCenter defaultCenter]postNotificationName:@"Event" object:self];
Если я определил имя к nil
это хорошо работает becuase, это - просто широковещательная передача, когда я пытаюсь определить имя уведомления, сообщения никогда не проходят.
Все мой код использует nsnotifications
, как так:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateView) name:@"ScanCompleted" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"ScanCompleted" object:nil];
Первый зарегистрирован уведомление и вторая публикация уведомления.
Измените это:
[[NSNotificationCenter defaultCenter]postNotificationName:@"Event" object:self];
к этому:
[[NSNotificationCenter defaultCenter]postNotificationName:@"Event" object:nil];
Если ваше первое уведомление зарегистрировано правильно, NeweVEntloaded должен быть вызван.
Вы пробовали какие-либо другие имена, но @ «Событие» и Nil? Просто чтобы убедиться, что вы можете определить имена ваших событий в одном файле и включить, что в обоих уведомлении о регистрации и отправках. Например:
Заголовок файла:
extern NSString * const NOTE_myEventName;
Исходный файл:
NSString * const NOTE_myEventName = @"MyEventName";
Регистрация:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(handleMyEvent:)
name:NOTE_myEventName
object:nil];
Уведомление Отправка:
[[NSNotificationCenter defaultCenter]
postNotificationName:NOTE_myEventName object:nil];