繁体   English   中英

NS通知混淆了Swift 3

[英]NS Notification Confused Swift 3

目前正在向我的第一个IOS应用程序实施NS Notification。 我想要使​​用它,所以当用户成功进行购买时,产品名称是广泛的,并且监听器运行方法来解锁产品。 看看教程我很困惑它是如何工作的,如果这些可以被清除,我将非常感激。 我将发布下面的代码和我认为它的作用,如果他们有任何错误,请指出这些。

第1行 - Let是一个无法更改的变量,NotificationName是变量的名称。 Notfication.Name将名称声明为“通知标识符”

let notificationName = Notification.Name("NotificationIdentifier")

第2行 - 我认为这里的“NotificationName”是上面定义的侦听器的id。 如果我想传入一个对象,这是在最后完成的吗? 通过对象标签。 IE对象:productsRequest

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

Line - 3这是监听器,通知名称必须匹配帖子以接收我假设的正确通知。 添加观察者自选择器让我感到困惑,如果我从上面的第2行传入一个对象,即对象产品请求。 这是否必须在监听器中声明?

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

任何解释以进一步了解我的意见。 对不起,如果这些似乎是一个基本问题,那么阅读教程我正在努力理解这个的某些元素。

谢谢

  1. 正确。
  2. 正确。 传递给postNotification方法的对象是发件人,可用于过滤具有相同名称的通知(第3页)
  3. 当您订阅特定通知并将对象传递给addObserver方法时,您将只收到使用此确切对象发送的通知。 如果您未在addObserver指定它,您将收到具有此名称的所有通知。
  4. 一旦您不再需要再听取它们,请不要忘记removeObserver 如果您的侦听器是视图控制器,则通常在viewDidDisappear方法中的viewWillAppearremoveObserver中添加addObserver是一种很好的做法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM