核心数据:将对象从一个持久存储移动到另一个存储

时间:2013-05-02 14:52:35

标签: ios5 core-data

我在我的应用中使用Core Data,并且只想导出部分数据并将其导入其他设备。

为避免迁移问题,我想执行以下操作:

导出:

  • 使用相同的数据库模型创建第二个export.sqlite文件,但为空
  • 使用addPersistentStoreWithType
  • 添加该文件
  • 将一些ManagedObjects复制到.sqlite
  • 删除添加的持久性商店

导入:   - 将export.sqlite文件复制到app中   - 使用addPersistentStoreWithType添加.sqlite文件   - 复制数据   - 删除添加的persistentStore

但如何实现呢?即如何告诉我的托管对象,以便将自己复制到另一个商店?

1 个答案:

答案 0 :(得分:2)

如何告诉我的托管对象,将其自身复制到另一个商店?

你不能,也不能直接。你必须做类似的事情:

  • 对于原始数据存储中的每个对象,
    • 使用相同的实体类型
    • 在目标商店中创建新对象
    • 将新对象的属性指定为与原始对象相同的值
  • 完成创建新对象后,请再次传递以建立任何关系。

关系需要单独完成,因为关系中的所有对象都需要存在才能创建关系。