Уведомления

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

Уведомления и их объяснение

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

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

Любой объект может отправить уведомление. Другие объекты могут зарегистрировать себя в центре уведомления как наблюдатели для получения уведомлений, когда они отправляются. Центр уведомления заботится о широковещательных уведомлениях зарегистрированным наблюдателям, если таковые имеются. Объект, отправляющий уведомление, объект, включенный в уведомление и наблюдателя уведомления, может все быть различными объектами или тем же объектом. Объекты, отправляющие уведомления, ничего не должны знать о наблюдателях. С другой стороны, наблюдатели должны знать, по крайней мере, имя уведомления и ключи к словарю, если предоставленный.

Уведомление и делегация

Используя систему уведомления подобно использованию делегации, но имеет эти различия: