Swift CoreData处理集
我将CoreData引入到一个现有的类中,该类的对象包括到多个关系。 例如,在我之前,我会做这样的事情: “玩家”只是一个带有结果数组的普通类Swift CoreData处理集,swift,core-data,Swift,Core Data,我将CoreData引入到一个现有的类中,该类的对象包括到多个关系。 例如,在我之前,我会做这样的事情: “玩家”只是一个带有结果数组的普通类 for (y,result) in player.result!.enumerate() { 现在我不得不这样做 for (y,result) in (player.relResults!.allObjects as! [CDResult]).enumerate() 有更好的方法吗? 有什么方法可以避免这种难看的角色设置吗?在NSManagedOb
for (y,result) in player.result!.enumerate() {
现在我不得不这样做
for (y,result) in (player.relResults!.allObjects as! [CDResult]).enumerate()
有更好的方法吗?
有什么方法可以避免这种难看的角色设置吗?在
NSManagedObject
子类作为可选的NSSet
:
@NSManaged var results: NSSet?
所以关系的目标实体的类型在这里丢失了,
需要一些铸造。但你不必改变信仰
设置为一个数组。您可以将其强制转换为相应的集合
键入并在集合上迭代:
for result in player.results! as! Set<CDResult> { ... }
然后简单地用
for result in player.results! { ... }
缺点是,如果重新生成
Xcode中的托管对象子类。也许是未来版本的
Xcode将为多个关系创建Set
typed属性
(您还可以看看哪一种是替代工具
创建具有一些附加功能的托管对象子类。可能是mogenerator处理得更好。)
for result in player.results! { ... }