UIButton单击崩溃未实现方法SignatureForSelector:--出现问题无法识别的选择器



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

最新更新