具体类型不能符合Swift 4.1中具有约束关联类型的协议

时间:2018-05-31 15:26:36

标签: swift generics protocols associated-types

我有一点问题,这是错误的代码:

protocol ConstraintProtocol { }

protocol AssocProtocol {
    associatedtype T : ConstraintProtocol
}

protocol MyProtocol : ConstraintProtocol { }

enum ConcreteType: AssocProtocol {
    typealias T = MyProtocol
    case a
}

错误说明通常type 'ConcreteType' does not conform to protocol 'AssocProtocol'甚至提示:possibly intended match 'ConcreteType.T' (aka 'MyProtocol') does not conform to 'ConstraintProtocol'

但是...... MyProtocol 确实符合ConstraintProtocol !!!

事实上,如果我从associatedtype移除约束,它就像一个魅力。

那么,这只是我,还是我错过了什么?

我在Xcode 9.3.1中使用Swift 4.1,如果可以帮助的话。

0 个答案:

没有答案