Swift4:响应选择器不工作
Swift4: respondstoSelector not working
以下代码在 swift 3.x 中运行良好,但在 swift 中运行不正常 4.
let selector = "managerDidDetectedStation:"
let observer = <UIViewController subclass object>
let station = <Station Object>
if observer.responds(to: Selector(selector) {
observer.perform(Selector(selector), with: station)
}
observer.responds(to: Selector(selector)
总是 returns 错误。有人知道 api 在 swift4 中有任何变化吗?
您需要在 observer
class
顶部添加 @objcMembers
例如。如果 observer
是 XYZClass
class 的对象,那么写
@objcMembers
class XYZClass : NSObject
{
// Your Stuff
}
或
另一种方法是将 @objc
放在方法的开头,如下所示。
@objc func managerDidDetectedStation...
以下代码在 swift 3.x 中运行良好,但在 swift 中运行不正常 4.
let selector = "managerDidDetectedStation:"
let observer = <UIViewController subclass object>
let station = <Station Object>
if observer.responds(to: Selector(selector) {
observer.perform(Selector(selector), with: station)
}
observer.responds(to: Selector(selector)
总是 returns 错误。有人知道 api 在 swift4 中有任何变化吗?
您需要在 observer
class
例如。如果 observer
是 XYZClass
class 的对象,那么写
@objcMembers
class XYZClass : NSObject
{
// Your Stuff
}
或
另一种方法是将 @objc
放在方法的开头,如下所示。
@objc func managerDidDetectedStation...