我有各种各样的类,它们都遵循同一个协议(protocol)并共享相同的初始化方法。有没有办法在协议(protocol)中实现初始化?所以我不必在每个类中复制代码。这是我目前所拥有的
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
}
}
最佳答案
您不能这样做,因为协议(protocol)和协议(protocol)扩展不知道符合它们的对象中的属性,因此您无法初始化所有故事属性。
我敢肯定还有其他关于类型推断的运行时原因,但这一个可能是最容易解释的。
关于swift - 我可以在 Swift 的协议(protocol)中实现默认初始化吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49117677/