在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.
}
答案 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
调用会崩溃。