2014-01-16 42 views
0

我想更新当前使用直SQLite来使用核心数据的应用程序。在当前的数据库中,有几种多对多的关系需要迁移。这是通过在“实体”表中创建一个索引/ ID列并使用这些ID引用每一行来设置的。iOS - 从SQLite迁移到核心数据在发布的应用程序

由于核心数据处理实体之间的索引和关系,当我复制数据时如何重建这些关系?我是否必须添加ID属性才能维护原始参考?有没有更好的办法?

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

谢谢!

+0

对我来说,核心数据似乎无法处理多对多的关系。 – karim

+0

核心数据处理多对多就好了;它和你在一个直接的数据库情况下完全一样。 –

回答

1

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

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

不幸的是,您无法为此使用迁移管理器。它用于在Core Data模型之间进行手动迁移。

+0

完美。我想补充一点,它有助于将此视为*导入*到核心数据而不是迁移。 –