在从初始值设定项返回之前,不会在所有路径上调用"super.init"



我是 swift 的新手,现在我被困在继承中。在这里,我使用两个类A类和B类。B类继承了A类的一些属性。这是代码.

class A
{
var objRunningJobs:UIViewController!
var objCompletedJobs:UIViewController!
init(objRunningJobs:UIViewController, objCompletedJobs: UIViewController) {
self.objRunningJobs = objRunningJobs
self.objCompletedJobs = objCompletedJobs
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class B: A
{
override init(objRunningJobs:UIViewController, objCompletedJobs: UIViewController) {
super.init(objRunningJobs: objRunningJobs, objCompletedJobs: objCompletedJobs)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

在类 A 中,在 init 之后,我收到错误">super.init"在从初始值设定项返回之前没有在所有路径上调用。

简短回答:

class A: UIViewController {
let objRunningJobs: UIViewController
let objCompletedJobs: UIViewController
init(objRunningJobs:UIViewController, objCompletedJobs: UIViewController) {
self.objRunningJobs = objRunningJobs
self.objCompletedJobs = objCompletedJobs
super.init(nibName: "TestNib", bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

}

将"TestNib"替换为您的。 但是这是初始化UIViewController子类的糟糕方法。 可能,您不了解UIViewController的角色及其层次结构。你想在你的应用中做什么?

相关内容

  • 没有找到相关文章

最新更新