繁体   English   中英

如何一次将多个关系保存到CoreData?

[英]How do I save multiple relationships to CoreData at once?

“常规”与“锻炼”具有一对多的关系。 两者都属于NSManagedObject类。 我有一系列名为“ myWorkouts”的锻炼,我想在数组中的每个锻炼与例程之间创建一种关系。 这是我的数据模型:

在此处输入图片说明

这是“例程”类的属性的代码:

extension Routine {
    @NSManaged var name: String?
    @NSManaged var workout: Set<Workout>?
}

这是我尝试创建关系的代码:

var myWorkouts = [Workout]()

for workout in myWorkouts {
    routine!.workout = Set(arrayLiteral: workout)
}

我遇到的问题是,每次保存的锻炼都将覆盖上次保存的锻炼,因此,实际上,它只是将数组中的最后锻炼保存为与常规的关系。 如何保存所有这些?

您每次通过循环都将覆盖一组关系:

 for workout in myWorkouts { routine!.workout = Set(arrayLiteral: workout) } 

这等效于以下内容,以下内容每次都会覆盖锻炼中存储的值。

routine!.workout = Set(arrayLiteral: a)
routine!.workout = Set(arrayLiteral: b)
routine!.workout = Set(arrayLiteral: c)

相反,您需要分配一次包含所有锻炼的Set:

routine!.workout = Set(myWorkouts)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM