为什么Swift不能使用协议类作为参数类型?

时间:2019-04-30 10:18:20

标签: swift swift-protocols

我真的需要制定一个更好的标题。

无论如何,这就是我所拥有的:

protocol DataType {}
struct MyData: DataType {}

protocol InterfaceFoo {
    func getValue() -> DataType
    func getAnother(data: DataType)
}

我尝试将InterfaceFoo的{​​{1}}用作返回类型和参数,而不是MyData

但是编译器不会让我通过:DataType

Type 'InterfaceFoo' does not conform to protocol 'InterfaceFoo'

由于class MyFoo: InterfaceFoo { func getValue() -> MyData { return MyData() } func getAnother(data: MyData) {} } 符合MyData协议,为什么它不能通过该称呼?

还有其他方法可以实现这一目标吗?

0 个答案:

没有答案