Swift - 发送到实例的无法识别的选择器
Swift - unrecognized selector sent to instance
我在我的 Swift 项目中设置了一个简单的 NSNotification
。
NSNotificationCenter.defaultCenter().addObserver(self, selector: "serviceAccessChanged", name:"LocationAccessChangedNotification", object: nil)
我也试过了...
NSNotificationCenter.defaultCenter().addObserver(self, selector: "serviceAccessChanged:", name:"LocationAccessChangedNotification", object: nil)
调用的方法看起来是这样的。
private func serviceAccessChanged() {
println("serviceAccessChanged")
}
发出通知后,我收到以下错误。
-[CoolApp.HomeViewController serviceAccessChanged]: unrecognized selector sent to instance 0x7fc91324bba0
出了什么问题,我该如何解决?
私有函数不会暴露给 Objective C,这就是您得到此异常的原因。使此方法可访问,并使用 serviceAccessChanged
选择器。
只需用@objc 标记您的私有方法
@objc private func serviceAccessChanged() {
println("serviceAccessChanged")
}
我在我的 Swift 项目中设置了一个简单的 NSNotification
。
NSNotificationCenter.defaultCenter().addObserver(self, selector: "serviceAccessChanged", name:"LocationAccessChangedNotification", object: nil)
我也试过了...
NSNotificationCenter.defaultCenter().addObserver(self, selector: "serviceAccessChanged:", name:"LocationAccessChangedNotification", object: nil)
调用的方法看起来是这样的。
private func serviceAccessChanged() {
println("serviceAccessChanged")
}
发出通知后,我收到以下错误。
-[CoolApp.HomeViewController serviceAccessChanged]: unrecognized selector sent to instance 0x7fc91324bba0
出了什么问题,我该如何解决?
私有函数不会暴露给 Objective C,这就是您得到此异常的原因。使此方法可访问,并使用 serviceAccessChanged
选择器。
只需用@objc 标记您的私有方法
@objc private func serviceAccessChanged() {
println("serviceAccessChanged")
}