0

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

4

1 回答 1

0

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

只需保留一个用户偏好标志来检查属性是否已更新。或者,您可以通过 fetch 进行检查。

然后只需“手动”更新属性,也许在applicationFinishedLaunching.

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

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

于 2013-01-23T11:33:14.433 回答