【发布时间】:2020-02-13 18:08:13
【问题描述】:
我必须在协议中保留共享实例属性。在类 init 中传递协议类型时,我收到错误“协议 'EnvironmentProtocol' 只能用作通用约束,因为它具有 Self 或关联的类型要求”。
protocol EnvironmentProtocol {
static var shared: Self { get set }
}
final class Enviorenment: EnvironmentProtocol {
static var shared: Enviorenment = Enviorenment()
private init() { }
}
class Home {
let env: EnvironmentProtocol
init(env: EnvironmentProtocol) {
self.env = env
}
}
【问题讨论】: