【发布时间】:2021-07-18 16:15:18
【问题描述】:
我有基类
class Company {
var list: [Employee] = []
var name: String = ""
func getProduct() -> Product {
return Product(name: "Phone")
}
required init(_ list: [Employee], _ name: String) {
self.list = list
self.name = name
}
convenience init?(_ employee: Employee?, _ name: String) {
if ( employee == nil || name.isEmpty) { return nil }
if let emp = employee as? Employee {
self.init([emp], name)
}
self.init(employee, name)
}
}
继承
class FoodCompany: Company{
var qualityCertificate: String
required init(_ list: [Employee], _ name: String) {
self.list = list
self.name = name
}
init? (_ employee : (String?, String?), _ name: String, _ qualityCertificate: String ) {
if ( employee.0 == nil || employee.1 == nil ) {
return nil
}
if ( name.isEmpty || qualityCertificate.isEmpty) {
return nil
}
self.qualityCertificate = qualityCertificate
let fName = employee.0 as? String
let lName = employee.1 as? String
}
}
在失败的初始化中我有一个错误 在从初始化程序返回之前,不会在所有路径上调用“super.init”。 但是,如果我没有数据,我如何添加 super.init 调用?也许我不明白什么? 也许我需要添加不带参数的init?
【问题讨论】:
-
你说你没有数据是什么意思?你有超类初始化器需要的
list和name,不是吗?如果就超类而言那是无用的数据,那么听起来你没有理由在这里使用继承。
标签: swift