技巧:
在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”)