【发布时间】:2020-04-22 00:02:14
【问题描述】:
我想要做的是有两个泛型类型参数,其中一个是特定类型,另一个是协议,如下所示:
@propertyWrapper
struct Implementation<T, P> where T : AnyObject, T : P { // Compiler error
var wrappedValue: P { projectedValue }
var projectedValue: T
init(_ instance: T) {
self.projectedValue = instance
}
}
这样,可以隐藏实际类型,只暴露协议。
现在这行不通了,因为P 是一个非类、非协议类型,所以T 不能被限制在它上面。
有没有办法解决这个问题?
【问题讨论】:
标签: swift generics swift-protocols property-wrapper