UIViewController 和所需的初始化?(编码器:)
Posted
技术标签:
【中文标题】UIViewController 和所需的初始化?(编码器:)【英文标题】:UIViewController and required init?(coder: ) 【发布时间】:2015-12-20 01:30:03 【问题描述】:Xcode 不断给我一些运行时错误,例如“致命错误:init(coder:) 尚未实现: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 中初始化板。显然它不起作用。任何建议将不胜感激。
【问题讨论】:
【参考方案1】:删除
fatalError("init(coder:) has not been implemented")
来自required init?(coder aDecoder: NSCoder)
初始化程序的行。此行引发了您的错误。不需要此行。
XCode 在你创建init?(coder aDecoder: NSCoder)
方法时添加了这一行来提醒开发者实现这个方法或者永远不要调用它。如果开发人员忘记实现它,但会尝试从存档或 Storyboard 实例化一个类,他将收到一个断言,并且能够轻松找到错误。
【讨论】:
谢谢,它有效。这条线应该在那里吗?还是有一些我们选择忽略的错误?以上是关于UIViewController 和所需的初始化?(编码器:)的主要内容,如果未能解决你的问题,请参考以下文章