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

Ios5 核心数据:将对象从一个持久存储移动到另一个持久存储,ios5,core-data,Ios5,Core Data,我正在我的应用程序中使用核心数据,只想导出部分数据并将其导入其他设备 为了避免迁移问题,我希望执行以下操作: 出口: 使用相同的数据库模型创建第二个export.sqlite文件,但为空 使用addPersistentStoreWithType添加该文件 将一些ManagedObject复制到该.sqlite 删除添加的持久存储 进口: -将export.sqlite-file复制到应用程序中 -使用addPersistentStoreWithType添加.sqlite文件 -将数据复制到

我正在我的应用程序中使用核心数据,只想导出部分数据并将其导入其他设备

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

出口:

  • 使用相同的数据库模型创建第二个export.sqlite文件,但为空
  • 使用addPersistentStoreWithType添加该文件
  • 将一些ManagedObject复制到该.sqlite
  • 删除添加的持久存储
进口: -将export.sqlite-file复制到应用程序中 -使用addPersistentStoreWithType添加.sqlite文件 -将数据复制到 -删除添加的persistentStore

但如何做到这一点呢?i、 e.我如何告诉我的托管对象将其自身复制到其他存储中?

我如何告诉我的托管对象将其自身复制到其他存储中

你不能,反正不能直接。您必须执行以下操作:

  • 对于原始数据存储中的每个对象,
    • 在目标存储中创建具有相同实体类型的新对象
    • 将新对象的属性指定给与原始对象相同的值
  • 创建完新对象后,再进行一次设置关系

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

我如何才能告诉托管对象它是在哪个持久存储中创建和保存的?当我完成类似的操作时,我使用了两个完全不同的核心数据堆栈--相同的模型,但是不同的持久存储协调器和托管对象上下文。如果您想使用一个堆栈来完成此操作,请查看
NSManagedObjectContext
assignObject:toPersistentStore:
方法。非常感谢您的帮助,我似乎马上就到了。。。现在我只需要找到最好的方法来做一个深度复制。。。您建议手动执行还是有自动/动态解决方案。还没有找到一个有效的…如果你指的是关系,没有自动的方法。在创建新对象时,您需要创建一个查找表,然后在第二步添加关系时使用它。您实现了吗?我也有类似的问题,你能帮我吗?