如何将App Store版本中的2个属性交换到当前的开发版本?

时间:2013-01-23 10:08:08

标签: core-data core-data-migration

如何将App Store版本的2个属性交换到我当前的开发版本? 问题是我没有更改数据模型,因此没有数据模型迁移。 我尝试添加一个新的数据模型版本(没有上一个版本的任何更改),创建一个映射模型和一个自定义实体迁移策略,在createDestinationInstancesForSourceInstance中执行此属性交换。 它不起作用,因为永远不会调用迁移。经过一些测试后,只有当第二个数据模型不同但不相等时,我才会调用它,这就是我想要的。 你有什么想法或建议吗? 我唯一的想法是创建一个虚拟属性或类似的东西来创建一个强制启动迁移过程的不同数据模型。 非常感谢。 里卡多。

1 个答案:

答案 0 :(得分:0)

如果您不更改数据模型,则迁移功能不是您想要的。这就像用麻炮射击麻雀。

只需保留用户首选项标记即可检查属性是否已更新。或者,您可以使用提取进行检查。

然后只需“手动”更新属性,可能在applicationFinishedLaunching

if (needsUpdate) {
   // fetch the concerned entities
   // iterate through fetchedObjects and change the concerned attributes
}
[self.managedObjectContext save:&error]; 

为了安全起见,您可以使用NSManagedObjectContext s performBlock:在单独的主题上执行此操作。