【发布时间】:2021-02-10 07:55:15
【问题描述】:
我有 3 个协议来定义Mediator 使用Host 提取Client 的关系
HostClientMediator
我的目标是让Host 也充当Mediator。这些是我的类和协议定义:
class Host {}
class Client {}
protocol HostProtocol {}
protocol ClientProtocol {}
extension Host: HostProtocol {}
extension Client: ClientProtocol {}
protocol MediatorProtocol {
associatedtype H = HostProtocol
associatedtype C = ClientProtocol
func getClientFrom(host: H) -> C?
}
然后我扩展我的MediatorProtocol 以添加一个实现
extension MediatorProtocol where H == Host, C == Client {
func getClientFrom(host: H) -> C? {
return Client()
}
}
现在,当我尝试使我的主机符合 MediatorProtocol 时,我收到一条错误消息
Type 'Host' 不符合协议 MediatorProtocol
extension Host: MediatorProtocol {}
有什么想法吗?
【问题讨论】: