我有一个有很多[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
。
这是我的话:
这是我的页面:
任何想法可能是什么错误?
答案 0 :(得分:1)
您正在尝试将一个集合转换为数组,或者更准确地将NSSet
转换为Array
。此外,当您已经正确子类化时,您不需要不安全的valueForKey
。
let words = page.words as Set<Word>
您可以使用与数组相同的方式枚举
for word in words { .... }