将核心数据迁移到干净的开始

时间:2014-03-26 17:07:55

标签: ios core-data core-data-migration

我正在将应用更新为全新版本(重新制作)。一切都会变得更快,更少。正如其他帖子建议我无法创建该模型的另一个版本,因为我没有以前版本的应用程序代码(我开始了一个新项目)。我所拥有的是捆绑标识符,它是一个更新。我将使用核心数据,但我想删除正在更新的用户的所有旧模型和旧数据,就好像他们删除了应用程序并重新安装它一样。我该如何实现这一目标?或者没有必要删除任何东西,因为它是一个不同的模型?我想要的是防止应用程序在启动时崩溃。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您尝试使用不允许Core Data理解它的模型打开相同的持久性存储文件,那么您将引发异常。因此,您可能需要做的就是使用不同的文件 - 请记住,您需要在addPersistentStoreWithType:configuration:URL:options:error:中指定磁盘位置 - 用于持久存储,并要求NSFileManager删除旧文件。

我认为要求删除已经不存在的文件并不需要任何特别复杂的逻辑会受到惩罚。你只是要重复文件管理器内部的工作。

或者,如果您希望保留同一个文件,请将addPersistentStoreWithType:...块中的@try/@catch封锁在@catch块中,然后在addPersistentStoreWithType:...中删除现有文件并尝试{{1第二次。