【问题标题】:Problems debugging initializer?调试初始化程序有问题?
【发布时间】:2015-03-13 10:34:21
【问题描述】:

以下代码出现调试错误:

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 并让我把它放进去。无论哪种方式(有或没有)它都会给我一个错误。

任何意见和建议将不胜感激。

提前致谢。

【问题讨论】:

    标签: xcode debugging swift init lldb


    【解决方案1】:

    在您的代码中,您触发了“fatalError”而不是初始化。替换

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

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

    【讨论】:

    • 如果它崩溃了为什么还要我输入代码?
    • 谢谢。有效。我只是想知道一些背景信息。
    • 我猜想添加这个崩溃行(通过触发 fatalError 并显示有关缺少编码器的消息)是 Xcode 告诉您确实需要在此类中实现此编码器的方式。我同意这可能会造成混淆。
    猜你喜欢
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多