了解在Core Data中添加/更新关系对象

时间:2012-04-12 14:34:15

标签: ios core-data entity nsmanagedobjectcontext

例如,我有两个名为ClassStudent的实体。 两个实体通过一对多关系连接,“Class”具有ClassID字段,Student具有ClassID和StudentID字段。

我对这种情况有几个问题:

  1. 当我在Class和Student之间定义Connection时,它们是通过ClassID连接的,还是Core Data以某种方式创建了自己的连接?
  2. 在已经保存了Class实体之后,假设我想要添加一个Student。我可以添加一个具有该ClassID的新学生,或者我必须获取Class对象,将学生添加到其.students NSSet对象,并将其保存回Core Data?
  3. 如果后一个选项是唯一选项,我将如何继续更新Core Data中的记录? Fetch是使用NSFetchRequest,更改它,而不仅仅是再次保存托管对象上下文?
  4. 对于很多问题感到抱歉,我非常感谢您提供的任何帮助:)

1 个答案:

答案 0 :(得分:1)

  1. 就核心数据而言,您的ClassID只是用户数据。它没有参与关系。

  2. 第二个选项。核心数据持久存在对象及其关系,因此策略是更新对象然后保存它们。

  3. 是的,尽管为了让用户表明他们想要的连接,应用程序已经加载了相关记录,但这种情况经常发生。

  4. 调用你的Class类'Class'会让人感到困惑。 : - )