在Swift中,当按下按钮时,应用程序崩溃并出现错误
未实现方法SignatureForSelector:--前方有问题无法识别的选择器
在代码中,我的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.
}
我发现的问题是MyController类需要从NSObject类继承。将类声明更改为如下解决了我的问题。
class MyController : NSObject
{
override init() // since it is overriding the NSObject init
{
}
}
这可能是因为NSObject实现了类似respondsToSelector
的方法。在调用pressed:函数之前,它会尝试检查是否实际实现了选择器pressed:。但是由于MyController也没有respondsToSelector
,所以它崩溃了。
另一个选项是将@objc
添加到class
声明中。
我发现使用NSTimer
调用会崩溃。