我可以在Swift中实现协议中的默认初始化

问题描述 投票:0回答:1

我有各种类都符合单个协议并共享相同的初始化方法。有没有办法在协议中实现初始化?所以我不必复制每个类中的代码。这就是我到目前为止所拥有的

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
    }
}
swift swift4 dry
1个回答
1
投票

您无法执行此操作,因为协议和协议扩展不了解符合它们的对象中的属性,因此您无法初始化所有故事属性。

我确定有关于类型推断的其他运行时原因,但这个可能是最简单的解释。

© www.soinside.com 2019 - 2024. All rights reserved.