2016-10-10 2 views
1

В настоящее время в процессе внедрения NS Notification в мое первое приложение IOS. Я хочу использовать его, поэтому, когда пользователь успешно совершает покупку, имя продукта широко выдается, а слушатель запускает метод для разблокировки продуктов. Глядя на учебные пособия, я смущен о том, как это работает, и будет очень признателен, если их можно будет очистить. Я отправлю код ниже и то, что я думаю, что он делает, если у них есть какие-либо ошибки, укажите их.NS Уведомление Confused Swift 3

Линия 1 - это переменная, которая не может быть изменена, NotificationName - это имя переменной. Notfication.Name объявляет имя как «Уведомление Identifier»

let notificationName = Notification.Name("NotificationIdentifier") 

Line 2 - Я думаю, что здесь в «NotificationName» является идентификатор этого для слушателя, как определено выше, с помощью аренды. Если я хочу передать объект, это делается в конце? через тег объекта. IE объект: productsRequest

NotificationCenter.default.post(name: notificationName, object: nil) 

Line - 3 Это слушатель, имя уведомление должно соответствовать должности, чтобы получить правильное уведомление я предположить. Селектор добавления дополнительного наблюдателя меня сбивает с толку, и если я передаю объект из строки сообщения 2 выше, то есть запрос объектов объекта. Должно ли это быть объявлено в слушателе?

NotificationCenter.default.addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification), name: notificationName, object: nil) 

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

Благодаря

ответ

0
  1. Правильно.
  2. Исправить. Объект, который вы передаете в метод postNotification, является отправителем, который может использоваться для фильтрации уведомлений с тем же именем (стр. 3).
  3. Когда вы подписываетесь на конкретное уведомление и передаете объект на метод addObserver, вы будете получать только уведомления которые были отправлены с помощью этого точного объекта. Если вы не указали его в addObserver, вы получите все уведомления с этим именем.
  4. Не забывайте, что removeObserver, как только вы не сможете больше слушать их. Если ваш слушатель является контроллером вида, то, как правило, рекомендуется использовать addObserver в viewWillAppear и removeObserver в viewDidDisappear методах.
Смежные вопросы