Swift 无法使用另一个符合协议来符合协议

Swift 无法使用另一个符合协议来符合协议,swift,Swift,我遇到了以下代码,不知道为什么它不能编译: 协议CellDelegate:类{} 协议删除CellViewModel{ 变量委托:CellDelegate?{get} } 协议产品CellViewModelDelegate:CellDelegate{} //错误:类型“ProductCellViewModel”不符合协议“DelegatingCellViewModel” 类ProductCellViewModel:DelegatingCellViewModel{ 弱var委托:ProductCe

我遇到了以下代码,不知道为什么它不能编译:

协议CellDelegate:类{}
协议删除CellViewModel{
变量委托:CellDelegate?{get}
}
协议产品CellViewModelDelegate:CellDelegate{}
//错误:类型“ProductCellViewModel”不符合协议“DelegatingCellViewModel”
类ProductCellViewModel:DelegatingCellViewModel{
弱var委托:ProductCellViewModelDelegate?
}
完整错误消息:

error: Playground.playground:9:7: error: type 'ProductCellViewModel' does not conform to protocol 'DelegatingCellViewModel'
class ProductCellViewModel: DelegatingCellViewModel {
      ^

Playground.playground:10:14: note: candidate has non-matching type 'ProductCellViewModelDelegate?'
    weak var delegate: ProductCellViewModelDelegate?
             ^

Playground.playground:4:9: note: protocol requires property 'delegate' with type 'CellDelegate?'; do you want to add a stub?
    var delegate: CellDelegate? { get }
        ^
这是语言限制还是我遗漏了什么?
该如何编写此代码以使其编译并保持原意?

您需要更改委托类型或添加协议存根

class ProductCellViewModel: DelegatingCellViewModel {
    weak var delegate: CellDelegate?
}
或 您必须像这样更改该特定委托的名称。因为一致性协议已经使用了代理名称-

class ProductCellViewModel: DelegatingCellViewModel {
    var delegate: CellDelegate?
    weak var productDelegate: ProductCellViewModelDelegate?
}

您能发布准确的错误消息吗?@shivi_shub补充道,原因可能是它不够强大?事实上,错误消息非常具有描述性。@AndreyChernukha不,这没有什么区别不幸的是,这种方法失去了更具体的委托类型
ProductCellViewModelDelegate
。有没有办法写下代码,这样我就可以保存它?@Nikitakushkin检查编辑后的答案。