Что означает сообщение в центр уведомлений - PullRequest
0 голосов
/ 12 июня 2018

Что означает сообщение в центр уведомлений?В чем разница между публикацией и добавлением наблюдателя с помощью NotificationCenter.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

NSNotificationCenter : NSNotificationCenter можно рассматривать как интерфейс, используемый для передачи информации в вашем приложении. В отличие от push-уведомлений или локальных уведомлений, когда вы уведомляете пользователя о любом контенте, который вы хотели бы получить, NSNotificationCenter позволяет намотправлять и получать информацию между классами и / или структурами на основании действия, которое произошло в нашем приложении.NotificationCenter просто можно представить вещателем, и мы настраиваемся на некоторые станции / каналы для получения изменений, если таковые имеются.

NotificationCenter.default - это место, где все уведомления наблюдаются и публикуются. Каждое уведомление имеет уникальный идентификатор, который можетиспользоваться для проверки канала на стороне вещания, а также на стороне приема.

addObserver () : объекты регистрируются в центре уведомлений для получения уведомлений с использованием addObserver (_: селектор: имя: объект :) или addObserver (forName: объект: очередь: использование :)методы.Когда объект добавляет себя в качестве наблюдателя, он указывает, какие уведомления он должен получать.Поэтому объект может вызывать этот метод несколько раз, чтобы зарегистрировать себя в качестве наблюдателя для нескольких различных уведомлений. Класс, реализующий метод addobserver (), является приемником.

Пример: добавление наблюдателя (этобудет на стороне получателя)

NotificationCenter.default.addObserver(self, selector: #selector(self.methodOfReceivedNotification(notification:)), name: Notification.Name("NotificationIdentifier"), object: nil)

@objc func methodOfReceivedNotification(notification: Notification){}

post () : создает уведомление с указанным именем и отправителем и отправляет его в центр уведомлений.Создание пакета и отправка его через канал.Класс, реализующий метод post (), является вещателем.

Пример: отправка наблюдателя (это будет в конце вещания)

NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil)

Примечаниечто «NotificationIdentifier» - это уникальное имя для идентификации конкретного канала.И селектор - это метод / действие, которое необходимо выполнить при получении уведомления. Вы также можете передать данные в центр уведомлений в параметре «object».

«По вашему вопросу»В чем разница между публикацией и добавлением наблюдателя с помощью NotificationCenter. "

Ответ заключается в том, что они оба идут друг к другу, один (add-наблюдатель ()) используется для отправки идругой (post ()) используется для получения . поэтому, если вы публикуете уведомление, необходимо, чтобы вы также реализовали наблюдателя. Короче, если вы бросаете что-то, вам нужно кого-то поймать, если вы говоритеВам нужен кто-то, чтобы слушать.

0 голосов
/ 12 июня 2018

Центр уведомлений просто используется для публикации информации для зарегистрированного наблюдателя

Информация о Центре уведомлений

Пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...