为我的点击手势发送到实例的无法识别的选择器

Posted

技术标签:

【中文标题】为我的点击手势发送到实例的无法识别的选择器【英文标题】:Unrecognized selector sent to instance for my tap gesture 【发布时间】:2018-07-22 22:26:10 【问题描述】:

我有以下代码

lazy private var _containerView: UIView = 
    let view = UIView(frame: self.view.frame)
    let tapGesture = UITapGestureRecognizer(
        target: self,
        action: Selector(("didtapContainerView:"))
    )
    view.translatesAutoresizingMaskIntoConstraints = false
    view.backgroundColor = UIColor(white: 0.0, alpha: 0)
    view.addGestureRecognizer(tapGesture)
    tapGesture.delegate = self
    return view
()

这就是方法

@objc final func didtapContainerView(gesture: UITapGestureRecognizer) 
    setDrawerState(state: .Closed, animated: true)

我收到了这个错误

Forsa.KYDrawerController didtapContainerView]:无法识别的选择器发送到实例

【问题讨论】:

【参考方案1】:

您不知道如何为此方法制作正确的选择器。 (应该是"didtapContainerViewWithGesture:",但显然你不知道。)

所以不要尝试。使用#selector 语法,让编译器为你形成选择器!

只要说#selector(didtapContainerView)。完毕。

【讨论】:

【参考方案2】:

这是 Swift ,将选择器更正为这个

let tapGesture = UITapGestureRecognizer(target: self,action: #selector(didtapContainerView(_:)))

//

@objc func didtapContainerView(_ gesture: UITapGestureRecognizer) 
    setDrawerState(state: .Closed, animated: true)

【讨论】:

不,它是目标 c,该项目有一些目标 c 和一些 swift @AmiraElsayedIsmail 不,您问题中的代码与 Objective-C 完全无关。这是 Swift 代码。 @AmiraElsayedIsmail 用swift写的手势和用objective C写的选择器是什么意思???

以上是关于为我的点击手势发送到实例的无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式添加视图和手势 - “发送到实例的无法识别的选择器”

[标签比较:]:无法识别的选择器发送到实例

NSInvalidArgumentException,使用 performSegueWithIdentifier 时发送到实例的无法识别的选择器

Swift 3:将无法识别的选择器发送到手势识别器实例

无法识别的选择器发送到实例,UISlider swfit3

Monotouch - [NSConcreteValue doubleValue]:发送到实例的无法识别的选择器