目标动作模式的快速无法识别的选择器

Posted

技术标签:

【中文标题】目标动作模式的快速无法识别的选择器【英文标题】:swift unrecognized selector for target action pattern 【发布时间】:2014-06-12 00:29:29 【问题描述】:

我正在尝试快速使用手势识别器,但我不断收到无法识别的选择器崩溃。

init(coder aDecoder: NSCoder!) 

    super.init(coder: aDecoder)

    self.addGestureRecognizer(tapRecognizer)
    tapRecognizer.addTarget(self, action:"respondToTap:")

    self.userInteractionEnabled = true


func respondToTap(#recognizer: UITapGestureRecognizer!)-> Void 
    switch recognizer.state 

    case UIGestureRecognizerState.Began:
        showTouchDown()

    case UIGestureRecognizerState.Ended:
        showTouchUp()

    default:
        return
    

如何在 swift 中使用方法签名来处理目标动作?

【问题讨论】:

【参考方案1】:

通过将您的函数定义为func respondToTap(#recognizer: UITapGestureRecognizer!),您将给第一个参数一个external name。所以你的方法实际上叫做respondToTaprecognizer:。你不希望参数有一个外部名称,它应该是func respondToTap(recognizer: UITapGestureRecognizer!)

【讨论】:

【参考方案2】:

有趣。它在我的参数名称中使用 # 。

【讨论】:

以上是关于目标动作模式的快速无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章

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

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

在目标上调用 xxx 时抛出无法识别的发送到实例的选择器

Objective-c UITapGestureRecognizer 无法识别的选择器

目标c [__NSArrayM objectForKey:]:发送到实例的无法识别的选择器

setRefreshed:在横向模式下发送到 UIViewController 的无法识别的选择器