【发布时间】:2018-05-29 07:20:27
【问题描述】:
我是 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 类中,在初始化之后,我得到了错误 'super.init' 在从初始化程序返回之前没有在所有路径上调用。
【问题讨论】:
-
我无法重现该错误。
A的超类是什么?它应该有一个。 -
如果 A 类扩展 ViewController 则超类是 ViewController 类。如果不是,那么超类是 Object 类
-
A 类:UIViewController {}
-
那么你得到了答案。它应该可以工作,你能把你用于初始化的代码写给我吗?
-
哦!尝试从 B 类初始化器中删除覆盖
标签: ios swift inheritance