复制核心数据中持久存储之间的记录?

时间:2016-04-12 13:28:19

标签: ios core-data

我想将数据从一个商店复制到另一个商店。目标持久性存储可能已经有记录。是否更方便,而不是手动浏览所有记录并插入新上下文并保存?

1 个答案:

答案 0 :(得分:2)

如果您要复制所有数据,可以使用migratePersistentStore:toURL:options:withType:error:,这是NSPersistentStoreCoordinator上的方法。这将有效地将整个持久性存储复制到新的持久性存储文件。有些事情需要注意:

  • 尽管有这个名字,但这种方法与模型版本控制没有任何关系。两者都使用" migrate"但他们是不同的过程。
  • 在尝试此操作之前,您应确定已保存所有未完成的更改。
  • 执行此操作后,您从中迁移的商店将从协调员中删除 - 这意味着
    • 对托管对象的任何现有引用现在都无效。你应该重新获取它们。
    • 如果您继续使用协调员,则表示您正在使用新的商店文件。

如果您不想复制所有数据,则需要手动执行#34;,从旧商店获取对象并创建等效对象在新的。