我想使我的方法的參數selector
引用一個閉包屬性,它們都存在於相同的範圍內。例如,我可以讓#選擇器引用Swift中的閉包嗎?
func backgroundChange() {
self.view.backgroundColor = UIColor.blackColor()
self.view.alpha = 0.55
let backToOriginalBackground = {
self.view.backgroundColor = UIColor.whiteColor()
self.view.alpha = 1.0
}
NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: #selector(backToOriginalBackground), userInfo: nil, repeats: false)
}
但是,這顯示錯誤:Argument of #selector cannot refer to a property
。
當然,我可以定義一個新的單獨的方法,並將閉包的實現移動到它,但我想保持節約這種小實現。
是否可以將關閉設置爲#selector
參數?
是啊!而已。我們在思考語法,而不是OP面臨的問題,這是更好的解決方案。 –
請在下面看到我的帖子。這是可能的w /一些objc運行時的魔法:) –