如何从一对多关系中正确检索.allObjects

时间:2016-04-05 07:25:13

标签: ios swift core-data entity one-to-many

我有一个有很多[Word]

的页面
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

我的理论

我还不熟悉Swift / xCode错误。但这是否试图告诉我Word可能在其他地方被保留为系统对象,而我不应该使用它?我的另一个理论是,我可能没有正确地连接我的实体......那就是Word = Int

这是我的话:

enter image description here

这是我的页面:

enter image description here

任何想法可能是什么错误?

1 个答案:

答案 0 :(得分:1)

您正在尝试将一个集合转换为数组,或者更准确地将NSSet转换为Array。此外,当您已经正确子类化时,您不需要不安全的valueForKey

let words = page.words as Set<Word>

您可以使用与数组相同的方式枚举

for word in words { .... }