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
调用崩溃。