UIButton单击崩溃不实现methodSignatureForSelector: – 麻烦提前无法识别的select器

在Swift中按下button时,应用程序崩溃,并出现错误

不实现methodSignatureForSelector: – 提前出现无法识别的select器

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

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

按下的function被定义为

 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. } 

我发现的问题是MyController类需要从NSObject类inheritance。 将类声明更改为以下解决了我的问题。

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

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

另一个select是将@objc添加到class声明中。

我发现,否则使用NSTimer调用崩溃。