我有一点问题,这是错误的代码:
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,如果可以帮助的话。