有可能迅速将闭包传递给选择器吗?
例如,是否可以重写此代码:
let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(doneAction(_:)))
@objc func doneAction(_ sender: UIBarButtonItem){
self.myTextField?.resignFirstResponder()
}
成为:
let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: { _ sender in
self.myTextField?.resignFirstResponder()
})
我已经尝试了上面的代码并得到:
Cannot convert value of type '() -> ()' to expected argument type 'Selector'
答案 0 :(得分:1)
不可能。如果参数类型是选择器,则必须传入选择器。有些类使用不同的方法提供了这两个选项,但是UIBarButtonItem并不是其中之一。