2016-04-05 87 views
0

我有一個網頁,有很多[字]如何正確檢索從一個.allObjects一對多的關係

class Page : NSManagedObject { 
    @NSManaged var words: NSSet 

然後我就可以訪問通過:

let words = self.page.valueForKey("words") 

我的錯誤來自試圖將它轉換爲[Word]

for word in words!.allObjects as! [Word] { 

將返回:

error: <EXPR>:1:24: error: 'Word' is ambiguous for type lookup in this context 
words!.allObjects as! [Word] 
         ^~~~ 
Swift.Word:2:18: note: found this candidate 
public typealias Word = Int 
       ^
found this candidate 

我的理論

我不是太熟悉斯威夫特/ Xcode的錯誤呢。但是,這是否試圖告訴我,Word可能在別處被保留爲系統對象,而我不應該使用它?我的另一個理論是,也許我沒有正確地連接我的實體..但是Word = Int

這裏是我的字:

enter image description here

這裏是我的頁:

enter image description here

任何想法這個錯誤可能是什麼?

回答

1

您正在嘗試將一組數據投射到一個陣列,或者更確切地說是NSSetArray。另外,當你已經正確分類時,你不需要不安全的valueForKey

let words = page.words as Set<Word> 

您可以枚舉以同樣的方式作爲一個數組

for word in words { .... } 
+0

我想'page.words'會工作,但它返回:'錯誤::1:1:錯誤:值'NSManagedObject'類型沒有成員'words'。這裏只是一個狂野的鏡頭,但是'words!.allObjects as Set '也返回''Word'在這種情況下對於類型查找是不明確的' – Trip

+1

這是因爲您沒有'將'page'投射到'Page'。 – Mundi

+0

就是這樣啊。非常感謝。您的評論導致我意識到我從未將modelxcdID文件與類連接起來。謝謝! – Trip

相關問題