'super.init' не вызывается на всех путях перед возвратом из инициализатора - PullRequest
0 голосов
/ 29 мая 2018

Я новичок в Свифте, и теперь я застрял в наследстве.Здесь я использую два класса класса А и класса В.Класс 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' не вызывается на всех путях перед возвратом из инициализатора.

1 Ответ

0 голосов
/ 29 мая 2018

Краткий ответ:

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's и их иерархию.Что вы хотите сделать в своем приложении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...