iOS的新功能。
我应该如何解决:
@objc protocol NwNamew {
init(vm: ViewModel)
}
class ViewController: UIViewController, NwNamew {
var viewModel: ViewModel
required init(vm: ViewModel) {
self.viewModel = vm
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
获取错误:super.init调用未初始化属性'self.viewModel'
答案 0 :(得分:0)
在调用super.init(coder:)
之前,您必须初始化该类中的所有变量。当您不在类中实现init(coder:)
函数时,可以删除此super.init(coder:)
调用。这将消除您的编译错误。
答案 1 :(得分:0)
您也可以通过将参数设置为Optional来解决此错误
var viewModel: ViewModel?
可选参数是可以为nil的参数,使用前需要将其解包。 您可以在此处阅读有关可选内容的更多信息: