我很难对这个问题给出一个好的标题,但这是我的理由:
protocol A: class {}
protocol B: A {}
protocol C {
var P: A { get set }
}
class D: C {
var P: B
}
我得到的错误是:
类型'D'不符合协议'C'
基本上,根据我的理解,这个错误不应该发生,因为协议B实现了协议A,这意味着D类实际上符合协议C.我想编译器无法推断它,我需要通过它来指导它。谁能向我解释我怎么能这样做?
感谢您的帮助,谢谢。