由於可以在swift 2.2版本中得出結論,可以通過#selector引用Objective-C方法。引用Objective-C方法的Swift#選擇器
let sel = #selector(UIView.insertSubview(_:at:)) // produces the Selector "insertSubview:atIndex:"
所以以前我們穿的用的名字一樣簡單的字符串方法:"doBangBang"
並調用它Selector("doBangBang")
,現在我們應該使用它像參考方法MyClass.doBangBang()
並與關鍵字#selector(MyClass.doBangBang())
的使用情況如何?此功能是否棄用Selector
?除了減少用錯誤名稱執行的函數的數量之外,這些改進還有什麼好處?
請參閱https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md中的「動機」。還要注意,這主要是爲了與較早的Objective-C框架進行互操作而引入的,因爲在新的代碼封閉中是一個更好的解決方案。 – Sulthan