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

例如。如果 observerXYZClass class 的对象,那么写

@objcMembers
class XYZClass : NSObject
{
  // Your Stuff
}

另一种方法是将 @objc 放在方法的开头,如下所示。

 @objc func managerDidDetectedStation...