简体   繁体   English

从初始化程序返回之前,并非在所有路径上都调用“ super.init”

[英]'super.init' isn't called on all paths before returning from initializer

I am new in swift and now i am stuck in inheritance . 我是新手,现在却陷入继承。 Here i am using two class class A, and class B . 在这里,我使用的是A类和B类两个类。 Class B is inheriting some properties of class A . B类继承了A类的某些属性。 Here is the code . 这是代码。

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")
    }
}

In class A , after init i am getting the error of 'super.init' isn't called on all paths before returning from initializer . 在A类中,在初始化之后,在从初始化器返回之前,并未在所有路径上调用'super.init'的错误

Short answer: 简短答案:

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")
}

} }

Replace 'TestNib' with yours. 用您的替换“ TestNib”。 But it's a bad way to initialize UIViewController subclass. 但这是初始化UIViewController子类的一种不好的方法。 Probably, you don't understand role of UIViewController's and their hierarchy. 可能您不了解UIViewController的角色及其层次结构。 What you want to do in your app? 您想在应用程序中做什么?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Swift:在从初始化程序返回之前没有在所有路径上调用“super.init”? - Swift: 'super.init' isn't called on all paths before returning from initializer? 在从初始化程序错误返回之前,不会在所有路径上调用Super.init - Super.init isn't called on all paths before returning from initializer Error 从初始化程序返回之前不会调用Super.init - Super.init isn't called before returning from initializer 解决“从初始化快速返回之前未在所有路径上调用Super.init的问题”。 - Problems getting around 'Super.init isn't called on all paths before returning from initializer swift.' 在从初始化程序返回之前,不会在所有路径上调用super init - super init isn't called on all paths before returning from initializer 在从初始化程序返回之前,不会在所有路径上调用“self.init” - 'self.init' isn't called on all paths before returning from initializer RealmSwift初始值设定项:在super.init调用之前自行使用 - RealmSwift initializer: self used before super.init call json.swift 错误是 Self.init 未在委托初始化程序的所有路径上调用 - json.swift error is Self.init isn't called on all paths in delegating initializer 台风初始化程序注入并调用super.init() - Typhoon initializer injection & calling super.init() swift3中无法调用super.init() - super.init() couldn't be called in swift3
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM