som*_*dev 6 swift swift-protocols
我有快速的代码:
protocol ParentProtocol {
// stuff
}
protocol ChildProtocol: ParentProtocol {
// additional stuff
}
protocol FooProtocol {
var variable: ParentProtocol? { get }
}
class Foo:FooProtocol {
var variable: ChildProtocol?
}
Run Code Online (Sandbox Code Playgroud)
我有编译器错误:
类型'Foo'不符合协议'FooProtocol'
我知道,根据FooProtocol,变量类型必须是ParentProtocol类型.另一方面ChildProtocol继承自ParentProtocol,所以它也是一个ParentProtocol
是否有任何解决方案以这种方式使用协议继承?
我找到了具有关联类型的解决方案(/sf/answers/2660580191/)
以我为例:
protocol FooProtocol {
associatedtype T = ParentProtocol
var variable:T? { get }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |