NSNotification问题 - 无法识别的选择器发送到实例

时间:2017-01-30 13:32:09

标签: ios objective-c swift nsnotificationcenter

我有这个观察员

NotificationCenter.default.addObserver(self, selector: #selector(flashButtonDidPress(_:)), name: NSNotification.Name(rawValue: "flash"), object: nil)

这个委托功能

func flashButtonDidPress(_ title: String) {
    cameraController.flashCamera(title)
}

有人可以解释我为什么会出现以下错误?

  

无法识别的选择器发送到实例

提前致谢

修改 我也在不使用通知的情况下访问该功能

1 个答案:

答案 0 :(得分:3)

NotificationCenter发送Notification s,而非String s,使用第二个函数从其他地方调用:

func flashButtonDidPress(_ notification: Notification) {
   if let title = notification.userInfo?["title"] as? String {
      flashCamera(with:title)
   }
}

func flashCamera(with title: String)
{
  cameraController.flashCamera(title)
} 

在发布通知时传递title词典中的userInfo,例如

let userInfo = ["title", title]