Swift 将@objc函数作为init内的参数传递,以用作UIControl目标的操作
因此,我尝试将objc函数作为参数,但是我得到了一个错误Swift 将@objc函数作为init内的参数传递,以用作UIControl目标的操作,swift,Swift,因此,我尝试将objc函数作为参数,但是我得到了一个错误使用未解析标识符“handler” typealias Handler = (_ sender: UIControl) -> Void class Custom { var item = UIControl() init(hander: Handler) { item.addTarget(item.self, action: #selector(handler(_ :)),
使用未解析标识符“handler”
typealias Handler = (_ sender: UIControl) -> Void
class Custom {
var item = UIControl()
init(hander: Handler) {
item.addTarget(item.self, action: #selector(handler(_ :)), for: .touchUpInside)
}
}
var temp = Custom(hander: myFunc)
@objc func myFunc(_ sender: UIControl) {
print("hi")
}
预期值是,如果按下temp,那么我应该在控制台中看到hi。非常感谢你的帮助
另外,我试着看其他问题寻求帮助,但这些问题根本没有帮助。我什么都试过了 使用参数类型作为选择器,问题就解决了。尝试以下代码
class Custom {
var item = UIControl()
init(handler: Selector) {
item.addTarget(item.self, action: handler, for: .touchUpInside)
}
}
var temp = Custom(handler: #selector(myFunc(_:)))
@objc func myFunc(_ sender: UIControl) {
print("hi")
}