iOS - 在发布的应用程序中从SQLite迁移到核心数据

时间:2014-01-16 13:57:00

标签: ios sqlite core-data

我正在尝试更新当前使用直接SQLite来使用C​​ore Data的应用程序。在当前数据库中,我必须迁移几个多对多关系。这是通过在“实体”表中创建索引/ id列并使用这些id引用每一行来设置的。

由于Core Data处理实体之间的索引和关系,因此在复制数据时如何重建这些关系?我是否必须添加ID属性才能保留原始引用?还有更好的方法吗?

另外,这是我可以使用迁移管理器吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

让我们假设您正在为实体Photo和Tag之间存在多对多关系的数据库执行此操作。并且您创建了相同的Core Data模型。

所以你正在迭代旧数据库中的照片。你得到下一张照片和它的所有标签,你可以用一些中间格式。然后为每个标记创建Photo托管对象和Tag托管对象。您的Photo对象将具有tags属性,表示与Tag实体的多对多关系。从您创建的标签创建NSSet,只需调用[photo addTags:tags];即可。核心数据将关注从每个标签到照片的反向关系。

很遗憾,您无法使用迁移管理器。它用于在Core Data模型之间进行手动迁移。