属性 'self.menuViewController' 未在 super.init 调用时初始化

Property 'self.menuViewController' not initialized at super.init call

我 运行 在 viewController 上遇到了这个错误,但不确定为什么会这样。控制器当前设置如下:

class ContainerViewController: UIViewController {

  init(sideMenu: UIViewController, center: UIViewController) {
    menuViewController = sideMenu
    centerViewController = center
    super.init(nibName: nil, bundle: nil)
  }

  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)// This is where the error happens
  }

}

知道为什么会发生这种情况吗?

错误发生在第二个初始化程序中,因为 属性 未初始化。所有非可选且没有默认值的属性都必须在每个初始化器中单独初始化,因为只有那个特定的初始化器实际运行(除非它显式调用不同的初始化器)。

如果您使用 coder 初始值设定项,您需要在其中为其分配一个值或将其设为可选。如果您实际上没有实现该初始化程序,请将其保留为 fatalError 默认值,因为如果它运行了,则意味着无论如何都会出现严重错误。