我希望能够使用实现协议要求的类型来实现协议的属性(下面的B)。例如我想得到下面的代码来编译。目前,错误是“类型D不符合协议B”
protocol A {
func doSomething()
}
protocol B {
var property: A { get }
}
class C: A {
func doSomething() {
//Stuff
}
}
class D: B {
var property: C = C()
}
答案 0 :(得分:1)
猜测这应该与关联类型
一起完成protocol B {
associatedtype T : A
var property: T { get }
}
class D : B{
var property : C = C()
}