Уведомления
Уведомление инкапсулирует информацию о событии, таком как фокус получения окна или закрытие сетевого соединения. Объекты, которые должны знать о событии (например, файл, который должен знать, когда его окно собирается закрыться) регистр с центром уведомления, что это хочет быть уведомленным, когда происходит тот случай. Когда случай действительно происходит, уведомление отправляется на центр уведомления, сразу широковещательно передающий уведомление всем зарегистрированным объектам. Дополнительно, уведомление ставится в очередь в очереди уведомления, отправляющей уведомления центру уведомления после того, как оно задерживает указанные уведомления и объединяет уведомления, которые подобны согласно некоторым указанным критериям, которые Вы указываете.
Уведомления и их объяснение
Стандартным способом передать информацию между объектами является передача сообщений — один объект вызывает метод другого объекта. Однако передача сообщений требует, чтобы объект, отправляющий сообщение, знал, кто получатель и что обменивается сообщениями, это отвечает на. Время от времени эта жесткая связь двух объектов является нежелательным — прежде всего, потому что это объединилось бы две иначе независимых подсистемы. Для этих случаев представлена модель трансляции: объект отправляет уведомление, диспетчеризирующееся соответствующим наблюдателям через NSNotificationCenter
объект, или просто центр уведомления.
NSNotification
объект (называемый уведомлением) содержит имя, объект и дополнительный словарь. Имя является тегом, идентифицирующим уведомление. Объект является любым объектом, который плакат уведомления хочет отправить наблюдателям того уведомления — обычно объект, отправивший само уведомление. Словарь может содержать дополнительную информацию о событии.
Любой объект может отправить уведомление. Другие объекты могут зарегистрировать себя в центре уведомления как наблюдатели для получения уведомлений, когда они отправляются. Центр уведомления заботится о широковещательных уведомлениях зарегистрированным наблюдателям, если таковые имеются. Объект, отправляющий уведомление, объект, включенный в уведомление и наблюдателя уведомления, может все быть различными объектами или тем же объектом. Объекты, отправляющие уведомления, ничего не должны знать о наблюдателях. С другой стороны, наблюдатели должны знать, по крайней мере, имя уведомления и ключи к словарю, если предоставленный.
Уведомление и делегация
Используя систему уведомления подобно использованию делегации, но имеет эти различия:
Любое число объектов может получить уведомление, не только объект делегата. Это устраняет возвращать значение.
Объект может получить любое сообщение, которое Вы любите от центра уведомления, не только предопределенных методов делегата.
Объект, отправляющий уведомление, даже не должен знать, что существует наблюдатель.