Можете ли вы объяснить, что это цель NSNotification и , что некоторые ситуации, я мог бы использовать это?iphone - Какова цель NSNotification?
ли уведомление вызова все классы в приложении, или это называют конкретный класс, путем пропускания делегата?
Можно ли создать уведомление 1 и получить его на нескольких классов?
ответ
Использования NSNotification вы можете сообщить несколько объектов о каком-то событии, и вы можете сделать это не заботясь о том, какие объекты и сколько из них прослушивают это уведомление.
NSNotification проходит через объект NSNotificationCenter, который отвечает за получение уведомлений от объектов, которые их создают (с использованием семейства postNotification: functions) и отправки их объектам, зарегистрированным для прослушивания определенного уведомления (для получения объекта уведомления необходимо зарегистрировать NSNotificationCenter используя
addObserver:
функции)Уведомление можно наблюдать по нескольким объектам - все они должны просто зарегистрироваться в NSNotificationCenter,
1: Вы читали Notification Programming Topics?
2: наблюдатель должен быть зарегестрирован для уведомления
3: Да, несколько объектов можно наблюдать то же уведомление
NSNotification
OBJE cts инкапсулирует информацию, чтобы он мог быть передан другим объектам объектом NSNotificationCenter
.
Объект NSNotification
(называемый уведомлением) содержит имя, объект и необязательный словарь. Имя - это тег, идентифицирующий уведомление. Объектом является любой объект, который плакат уведомления хочет отправить наблюдателям этого уведомления (обычно это объект, который отправил уведомление). Словарь хранит другие связанные объекты, если они есть. NSNotification
объекты являются неизменяемыми объектами.
Вкратце: быть удивительным. Наконец, это позволяет вам иметь слабосвязанный код, взглянуть на «Темы программирования уведомлений» и посмотреть, как NSNotifications используется яблоком, и это должно очистить его. – Jonathan
Возможный дубликат [Что такое NSNotification?] (Http://stackoverflow.com/questions/1900352/what-is-nsnotification) –