我有各种类都符合单个协议并共享相同的初始化方法。有没有办法在协议中实现初始化?所以我不必复制每个类中的代码。这就是我到目前为止所拥有的
protocol someProtocol {
init(data: Data)
}
class ObjectA: someProtocol {
let data: Data
required init(data: Data) {
self.data = data
}
}
class ObjectB: someProtocol {
let data: Data
required init(data: Data) {
self.data = data
}
}
您无法执行此操作,因为协议和协议扩展不了解符合它们的对象中的属性,因此您无法初始化所有故事属性。
我确定有关于类型推断的其他运行时原因,但这个可能是最简单的解释。