以下代码在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)
始终返回false。有没有人知道swift4中这个API有什么变化?
答案 0 :(得分:11)
您需要在observer
类
对于Ex。如果observer
是XYZClass
类的对象,则写入
@objcMembers
class XYZClass : NSObject
{
// Your Stuff
}
或
另一种方法是让@objc
启动您的方法,如下所示。
@objc func managerDidDetectedStation...