将默认记录还原到Core Data数据库

时间:2010-07-12 17:57:45

标签: iphone core-data

我有一个iPhone应用程序,它有一个预先加载了默认数据的sqlLite Core Data模型。我想让用户在修改或删除模型中的记录时恢复此默认数据,同时保留用户添加到模型中的任何新记录。

首次运行时,sqlLite数据库将复制到用户文档目录,因此应用程序包中提供了未触及的原始数据库。在两个数据库之间复制记录的最简单方法是什么?我假设它涉及设置一个额外的persistentStoreCoordinator,或者将原始的dB作为附加的持久存储添加到协调器,但文档对于如何执行此操作非常吝啬。

谢谢,

JK

1 个答案:

答案 0 :(得分:1)

如果您不想删除目标商店并仅覆盖它,则工作流程为:

  1. 使用源持久存储区域建立第二个Core Data堆栈。
  2. 从源中获取每个实体。
  3. 在目的地中查找对象。
  4. 如果存在,请更新它。
  5. 如果没有,请创建它。
  6. 保存目标商店。
  7. 根据您拥有的数据量,这可能是一项非常昂贵的操作。