我试图使用Swift 4将一个仅限类的协议指定为通用协议,但我无法让它工作。请考虑以下代码:
protocol SomeProtocol: class {
}
class Bar {
var foo = Foo<SomeProtocol>()
}
class Foo<Element: AnyObject> {
}
这导致编译器错误:&#39; SomeProtocol&#39;不能兑换为任何对象&#39;。但是应该是这种情况,因为SomeProtocol是一个只有类的协议。
将AnyObject添加到协议规范中也没有什么不同。