未检测到超类中声明的Swift协议一致性

时间:2016-08-03 14:46:19

标签: swift inheritance protocols realm hashable

我有以下代码:

import RealmSwift
class MyClass:Object{

}
func test(){
    let set = Set<MyClass>()
}

我收到编译时错误:输入&#39; MyClass&#39;不符合协议&#39; Hashable&#39;在这一行:

let set = Set<MyClass>()

MyClass扩展了Realm的类Object,它扩展了RLMObjectBase,扩展了NSObject。 NSObject符合Hashable。它在扩展名中声明。

为什么MyClass不会与Hashable混淆,因为它的一个超类符合它?

此外,如果我像这样添加Hashable:

class MyClass:Object, Hashable

然后错误消失了,但我的另一个colegue,谁在同一个项目上工作,得到编译时错误:

  

冗余协议一致性

此错误意味着子类声明与已从超类继承的协议的一致性。

有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:0)

我将xCode从7.3更新到7.3.1并修复了问题。感谢jpsim的评论,他指出了我正确的方向。