在按下按钮的Swift中,应用程序崩溃并出错
没有实现methodSignatureForSelector: - 麻烦提前无法识别的选择器
在代码中,我的Controller类获取对UIButton的引用,并添加如下所示的目标
aButton.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents.TouchUpInside)
Run Code Online (Sandbox Code Playgroud)
按下的功能定义为
func pressed(sender:UIButton)
{
println("button pressed")
}
Run Code Online (Sandbox Code Playgroud)
控制器类定义为
class MyController
{
init()
{
}
// Also here it gets the reference to the UIButton and has pressed function as well.
}
Run Code Online (Sandbox Code Playgroud)
Rei*_*ica 12
我发现的问题是MyController类需要从NSObject类继承.将类声明更改为以下修复了我的问题.
class MyController : NSObject
{
override init() // since it is overriding the NSObject init
{
}
}
Run Code Online (Sandbox Code Playgroud)
这可能是因为NSObject实现了类似的方法respondsToSelector.在调用pressed:函数之前,它会尝试检查它是否实现了按下的选择器:但由于MyController也没有respondsToSelector,所以它崩溃了.