【发布时间】:2011-09-13 05:26:09
【问题描述】:
我有一个棘手的问题,我找不到答案。我的数据模型结构如下:
版本 1:
项目有很多地点
位置有很多项目
但是由于错误地从未设置过两者之间的倒数。
版本 2:
与上面相同,但现在设置相反。
我的问题的一个例子如下:
在版本 1 中,我有两个拥有相同位置的项目。当我启动第 2 版并处理我的映射模型时,拥有该位置的原始项目失去了与该位置的关系,现在该位置仅显示为其中一个项目的一部分,而不是两个项目的一部分。
我知道这个问题很可能是由于我没有设置项目和位置之间的反向关系,但是我可以做些什么来使数据在应用程序/数据模型的两个版本中持久存在?
编辑:
我尝试过推断映射模型,并尝试手动创建映射模型。我目前只在创建NSPersistentStoreCoordinator 时使用NSMigratePersistentStoresAutomaticallyOption 键。
另外,为了清楚起见,我有两个版本的数据模型并且迁移成功发生,唯一的问题是关系没有按预期持续。
编辑 2: 我发现我需要继承 NSEntityMigrationPolicy。我不想进行完全自定义的迁移,如果可能的话,我宁愿让我的其余迁移保持自动。有谁知道与我的目的相关的关于子类化 NSEntityMigrationPolicy 的任何好的教程或示例?我找不到太多,据我所知,Apples 文档中很少提及它。
编辑 3: 我一生都无法弄清楚如何使用 NSEntityMigrationPolicy 建立反向关系。我的问题现在与我之前描述的有点不同。有谁知道如何做到这一点的任何可靠的例子?
【问题讨论】:
-
"我的映射模型已处理" -> 将映射两个模型的代码放在这里。
标签: iphone objective-c ios core-data core-data-migration