我有以下代码:
import RealmSwift
class MyClass:Object{
}
func test(){
let set = Set<MyClass>()
}
我收到一个编译时错误:在这一行中,类型“MyClass”不符合协议“Hashable”:
let set = Set<MyClass>()
MyClass 扩展了 Realm 的类 Object,它扩展了 RLMObjectBase,它扩展了 NSObject。NSObject 符合 Hashable。它在扩展中声明。
为什么 MyClass 不符合 Hashable ,因为它的超类之一符合它?
此外,如果我像这样添加 Hashable :
class MyClass:Object, Hashable
然后错误消失了,但我的另一位同事,他在同一个项目上工作,得到一个编译时错误:
冗余协议一致性
此错误意味着子类声明符合已从超类继承的协议。
有谁明白这里发生了什么?