UIButton click crashing没有实现methodSignatureForSelector: - 提前遇到问题无法识别的选择器

时间:2015-04-02 09:05:34

标签: ios swift

在Swift中按下按钮时,App崩溃并显示错误

  

没有实现methodSignatureForSelector: - 提前麻烦   无法识别的选择器

在代码中,我的Controller类获取对UIButton的引用并添加如下目标

aButton.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents.TouchUpInside)

按下的功能定义为

func pressed(sender:UIButton)
{
   println("button pressed")
}

控制器类定义为

class MyController
{
 init()
{
}
// Also here it gets the reference to the UIButton and has pressed function as well.
}

2 个答案:

答案 0 :(得分:12)

我发现的问题是MyController类需要从NSObject类继承。将类声明更改为以下修复我的问题。

class MyController : NSObject
{
    override init() // since it is overriding the NSObject init
    {
    }
}

这可能是因为NSObject实现了像respondsToSelector这样的方法。在调用pressed:函数之前,它会尝试检查它是否实现了按下的选择器:但由于MyController也没有respondsToSelector,所以它崩溃了。

答案 1 :(得分:3)

另一个选择是将@objc添加到您的class声明中。

我发现使用NSTimer调用会崩溃。