Xcode一直给我一些运行时错误,例如"致命错误:init(编码器:)尚未实现:file /.../ myproject.swift"
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var boardView: UIView!
@IBOutlet weak var movesLabel: UILabel!
@IBOutlet weak var timeLabel: UILabel!
let BOARD_SIZE: Int = 10
var board: Board
var squareButtons: [SquareButton] = []
required init?(coder aDecoder: NSCoder) {
self.board = Board(size: BOARD_SIZE)
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
}
因为我们必须在子类中实现所需的init?(coder :),所以我尝试同时在所需的init中初始化board。显然它不起作用。任何建议将不胜感激。
答案 0 :(得分:1)
删除
fatalError("init(coder:) has not been implemented")
来自required init?(coder aDecoder: NSCoder)
初始化者的行。此行引发了您的错误。不需要这一行。
XCode在您创建init?(coder aDecoder: NSCoder)
方法时添加此行以提醒开发人员实现此方法或从不调用它。如果开发人员忘记实现它但会尝试从archive或Storyboard实例化一个类,他将收到一个断言,并且能够轻松找到bug。