无法识别的选择器发送到Swift 3实例 [英] Unrecognized selector sent to instance Swift 3

查看:146
本文介绍了无法识别的选择器发送到Swift 3实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用选择器实现 TapGestureRecognizer ,下面是我将tapGestureRecognizer添加到<$ c $的代码c $ c> imageView

I want to implement TapGestureRecognizer with the selector, below is the code where I added tapGestureRecognizer to my imageView

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

这是动作方法

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

    present(imagePicker, animated: true, completion: nil)
}

编译器一直说

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

[UITapGestureRecognizer tag]: unrecognized selector sent to instance 0x6080001a7700'


推荐答案

问题在于您的方法声明以及将标记分配给 UIGestureRecognizer的对象。像这样改变你的方法声明。

The problem is with your method declaration and with assigning tag to the object of UIGestureRecognizer. Change your method declaration like this.

func assignImage(_ sender: UITapGestureRecognizer)

func assignImage(_ sender: UIGestureRecognizer)

编辑:使用访问imageView对象UITapGestureRecognizer

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

    }
}

注意: 您需要设置标记并使用 imageView 而不是 UITapGestureRecognizer

Note: You need to set tag with you imageView not with you UITapGestureRecognizer

这篇关于无法识别的选择器发送到Swift 3实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆