Swift 将@objc函数作为init内的参数传递,以用作UIControl目标的操作

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(_ :)),

因此,我尝试将objc函数作为参数,但是我得到了一个错误
使用未解析标识符“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")
    }