无法识别的选择器发送到Swift 3实例

aat*_*lyk 4 ios unrecognized-selector uitapgesturerecognizer swift3 xcode8

我想实现TapGestureRecognizerselector,下面是我添加tapGestureRecognizer到我的代码imageView

let tapFirstGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(assignImage(_:)))
firstImageView.isUserInteractionEnabled = true
firstImageView.tag = 1
firstImageView.addGestureRecognizer(tapFirstGestureRecognizer)
Run Code Online (Sandbox Code Playgroud)

这是动作方法

func assignImage(_ sender: UIImageView){
    imagePicker.allowsEditing = false
    imagePicker.sourceType = .photoLibrary
    imageViewTag = sender.tag

    present(imagePicker, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

编译器一直在说

[UITapGestureRecognizer标签]:无法识别的选择器发送到实例0x6080001a7700'

Nir*_*v D 9

问题在于您的方法声明和分配tag给对象UIGestureRecognizer.像这样更改方法声明.

func assignImage(_ sender: UITapGestureRecognizer)
Run Code Online (Sandbox Code Playgroud)

要么

func assignImage(_ sender: UIGestureRecognizer)
Run Code Online (Sandbox Code Playgroud)

编辑:使用访问imageView对象UITapGestureRecognizer.

func assignImage(_ sender: UITapGestureRecognizer) {
    if let imageView = sender.view as? UIImageView {

    }
}
Run Code Online (Sandbox Code Playgroud)

注意:您需要随身tag携带imageView而不是随身携带UITapGestureRecognizer