2016-08-03 58 views
0

我有以下代碼:斯威夫特協議一致性未檢測

import RealmSwift 
class MyClass:Object{ 

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

我得到一個編譯時錯誤:類型「MyClass的」不符合協議「哈希的」在這條線:

let set = Set<MyClass>() 

MyClass擴展了Realm的類Object,它擴展了擴展NSObject的RLMObjectBase。 NSObject符合Hashable。它在擴展中聲明。

爲什麼MyClass從它的超類中的一個符合它,就不能實現Hashable?

而且,如果我補充哈希的是這樣的:

class MyClass:Object, Hashable 

然後錯誤消失,但我的另一個colegue,誰在同一個項目工作,得到一個編譯時錯誤:

redundant protocol conformance

這個錯誤意味着一個子類聲明已經從一個超類繼承的協議的一致性。

有人知道這裏發生了什麼嗎?

+1

如果兩臺計算機的行爲不同,可能是Xcode緩存問題,請嘗試清理項目並刪除派生數據。 –

+0

這已在Swift編譯器中修復。請參閱https://github.com/realm/realm-cocoa/issues/2519 – jpsim

回答

0

我將xCode從7.3更新爲7.3.1,並解決了問題。感謝jpsim的評論,他指出我正確的方向。