2015-03-13 135 views
1

我有下面的代码调试错误:调试初始化程序的问题?

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,并让我把它放进去。它给我一个错误(有或没有它)。

任何输入和建议将不胜感激。

在此先感谢。

回答

1

在你的代码中,你触发了一个“fatalError”而不是初始化。更换

required init(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

required init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
} 
+0

,为什么它有我输入验证码,如果它使系统崩溃了? – Bigfoot11 2015-03-13 10:47:30

+0

虽然谢谢。有效。我只想知道一些背景信息。 – Bigfoot11 2015-03-13 10:50:05

+0

我想通过Xcode的方式告诉你你确实需要在这个类中实现这个编码器,从而添加这个崩溃的行(通过触发fatalError和一个关于缺少的编码器的消息)。我同意这可能会令人困惑。 – Moritz 2015-03-13 10:53:30