0

说,我的核心数据结构是这样的......


班级

  • classID <- RestKit 主键属性
  • 姓名
  • 时间
  • 学生(关系一对多)

学生(嵌套在班级中)

  • 学生卡
  • 姓名
  • 类(反向关系)<- RestKit primaryKeyAttribute ** 这不起作用?!**

我指定了映射的primaryKeyAttribute,如上所示。当我使用 restkit 发送加载请求时,它会正确更新具有相同主键的对象。RestKit 似乎可以正确更新班级,但对于学生来说,它只是添加新班级并取消旧学生的班级关系。所以现在我在 db 中有不需要的学生实体,没有参考类。

有没有办法可以使用 RestKit 正确更新学生关系?顺便说一句,我考虑过使用 studentID 作为 primaryKeyAttribute,但如果在新更新中删除了一些学生,它可能无法正常工作。可能是我必须在更新之前清除所有学生的班级,但我也不知道如何在 RestKit 中做到这一点。因为在调用 RKObjectLoader didLoadObject 时,似乎所有内容都已保存到 managedObjectContext。有任何想法吗?:(

4

1 回答 1

0

仍然找不到 RestKit 方式的解决方案,而且看起来没有人可以回答这个问题:-\ 所以我发布了我能想到的最佳方法。

我目前的工作是遍历班级的学生并在objectLoader:willMapData:. 我必须在这里(不是在objectLoader:didLoadObject:),因为它是新数据尚未保存到 MOC 的地方。

您也可以完全删除 Class 实体,但这种方式实际上不会更新旧实体。它使用新的“核心数据内部_pk”(主键)创建一个新的(是的,我确实关心它)。

于 2012-04-26T05:01:34.623 回答