将函数传递给#selector

pat*_*ckS 7 swift

我得到一个函数作为函数参数,并希望在#selector中设置它.但我收到错误消息:

Argument of '#selector' cannot refer to a property
Run Code Online (Sandbox Code Playgroud)

我有以下功能:

private func addGestureRecognizerToItem(selector: () -> ()) {
        let labelGesture = UITapGestureRecognizer(target: self, action: #selector(selector))
        let imageGesture = UITapGestureRecognizer(target: self, action: #selector(selector))
        label.addGestureRecognizer(labelGesture)
        imageView.addGestureRecognizer(imageGesture)
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何处理这个?

Ear*_*rey 8

这个怎么样?

class ViewController: UIViewController {

let label = UILabel()
let imageView = UIImageView()

override func viewDidLoad() {
    super.viewDidLoad()

    addGestureRecognizerToItem(#selector(test))
}

func test() {
}

private func addGestureRecognizerToItem(selector: Selector) {
    let labelGesture = UITapGestureRecognizer(target: self, action: selector)
    let imageGesture = UITapGestureRecognizer(target: self, action: selector)
    label.addGestureRecognizer(labelGesture)
    imageView.addGestureRecognizer(imageGesture)
}
Run Code Online (Sandbox Code Playgroud)

}