Мой UITableViewController
подкласс MatchTableViewController
имеет следующие свойства:
class MatchTableViewController: UITableViewController {
// MARK: - Properties
var matches = [Match]()
var dataModel: DataModel
var apiModel: APIModel
Я хочу инициализировать dataModel
и apiModel
путем переопределения инициализаторов.
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
// Init the DataModel
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
let managedContext = appDelegate.persistentContainer.viewContext
guard let historyEntity = NSEntityDescription.entity(forEntityName: "History",
in: managedContext)
else {
fatalError("Failed to load the History entry")
}
self.dataModel = DataModel(historyEntity: historyEntity,
managedContext: managedContext)
// Init the APImodel
self.apiModel = APIModel()
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Error here
}
override init(style: UITableView.Style) {
// Init the DataModel
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
let managedContext = appDelegate.persistentContainer.viewContext
guard let historyEntity = NSEntityDescription.entity(forEntityName: "History",
in: managedContext)
else {
fatalError("Failed to load the History entry")
}
self.dataModel = DataModel(historyEntity: historyEntity,
managedContext: managedContext)
// Init the APImodel
self.apiModel = APIModel()
super.init(style: style)
// Error here
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Xcodeвыдает ошибку 'super.init' isn't called on all paths before returning from initializer
сразу после двух super.init
звонков.Я не уверен, что мне здесь не хватает.