如何更新CoreData中另一个实体的子实体
Posted
技术标签:
【中文标题】如何更新CoreData中另一个实体的子实体【英文标题】:How to update child entity of another entity in CoreData 【发布时间】:2013-11-07 20:21:03 【问题描述】:我在我的应用程序中使用 CoreData 来“缓存”从我的服务器返回的数据。我拥有的一个实体(父)与另一个实体(子)具有一对多的关系。因此,如果您在 xcode 中查看数据建模器中的父实体,您会看到它有几个属性,一个是我可以用来访问正确父实体的 id,然后是与子实体的一对多关系。
子元素有大约 20 个属性,当用户在应用中执行某些操作时,我希望更新其中的一两个并保存在 CoreData 中。
我的问题是:我想知道如何或从哪里开始更新我的 CoreData 中的子元素。
我的结构的一个很好的例子就是下面的这个例子。我的父实体具有这些属性
身份证 fName lName 孩子们
我的子实体具有这些属性
- iD
- fName
- lName
- age
- hobbies
我希望能够更新相应实体中的年龄和爱好属性。
(对不起,如果我用了错误的词(父母/孩子)来描述这种关系,我不知道该用什么)。
【问题讨论】:
您的问题到底是什么?您要更新所有子对象还是一个特定对象?为什么不能只设置对象的属性?需要更多信息... 好吧,我不确定如何更新 coredata 中的某些内容,我知道如何读写整个实体,但我不确定如何更新子实体中的单个值或行。 您无法更新单个属性。您必须获取对象、设置新属性并保存上下文(保存 所有 更改)。 好的,这看起来很多余,但没关系。所以现在我的问题是,一旦我更新了我已经完成的对象,我该如何保存上下文?[managedObjectContext save:&error];
【参考方案1】:
更改属性和保存一样简单。
child.age = 14;
child.hobbies = setOfHobbies;
[self.managedObjectContext save:nil];
【讨论】:
以上是关于如何更新CoreData中另一个实体的子实体的主要内容,如果未能解决你的问题,请参考以下文章