调试初始化程序的问题?
问题描述:
我有下面的代码调试错误:调试初始化程序的问题?
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
这里是我的所有代码:
class ViewController: UIViewController {
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
var button = UIButton.buttonWithType(.Custom) as UIButton
button.frame = CGRectMake(160, 100, 50, 50)
button.layer.cornerRadius = 0.5 * button.bounds.size.width
button.setImage(UIImage(named:"thumbsUp.png"), forState: .Normal)
button.addTarget(self, action: "thumbsUpButtonPressed", forControlEvents: .TouchUpInside)
view.addSubview(button)
}
func thumbsUpButtonPressed() {
println("thumbs up button pressed")
}
错误说:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
调试器输出显示如下:
fatal error: init(coder:) has not been implemented: file...hi/ViewController.swift, line 14
我以前有过这个错误,我不确定如何解决它。奇怪的是,有一个错误说You don't have any initializers
,并让我把它放进去。它给我一个错误(有或没有它)。
任何输入和建议将不胜感激。
在此先感谢。
答
在你的代码中,你触发了一个“fatalError”而不是初始化。更换
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
与
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
,为什么它有我输入验证码,如果它使系统崩溃了? – Bigfoot11 2015-03-13 10:47:30
虽然谢谢。有效。我只想知道一些背景信息。 – Bigfoot11 2015-03-13 10:50:05
我想通过Xcode的方式告诉你你确实需要在这个类中实现这个编码器,从而添加这个崩溃的行(通过触发fatalError和一个关于缺少的编码器的消息)。我同意这可能会令人困惑。 – Moritz 2015-03-13 10:53:30