我有一个 Swift 代码:
protocol ParentProtocol {
// stuff
}
protocol ChildProtocol: ParentProtocol {
// additional stuff
}
protocol FooProtocol {
var variable: ParentProtocol? { get }
}
class Foo:FooProtocol {
var variable: ChildProtocol?
}
我遇到了编译错误:
类型“Foo”不符合协议“FooProtocol”
我知道,根据FooProtocol,变量类型必须是ParentProtocol类型。另一方面,ChildProtocol继承自ParentProtocol,所以它也是一个ParentProtocol。
在这种情况下,有没有使用协议继承的解决方案?
protocol P:Q{}
,P
也不能符合Q
”。 - dfrib