技巧:
在Swift中,我们可以通过 字符串赋值
的方式完成Selector的创建。原因在于Selector类型实现了StringLiteralConvertible方法。
注意:
selector 其实是 Objective-C runtime 的概念,如果你的 selector 对应的方法只在 Swift 中可见的话 (也就是说它是一个 Swift 中的 private 方法),在调用这个 selector 时你会遇到一个 unrecognized selector 错误
“正确的做法是在 private 前面加上 @objc 关键字,这样运行时就能找到对应的方法了。”
约定:
“如果方法的第一个参数有外部变量的话,在通过字符串生成 Selector 时还有一个约定,那就是在方法名和第一个外部参数之间加上 with:”
栗子(^_^):func aMethod(external paramName: AnyObject!){…} 想获取对应的selector,应该这么写 let s = Selector(“aMethodWithExternal”)