以前的核心数据迁移失败

时间:2013-08-26 17:06:19

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

我有一个应用程序,它有许多核心数据迁移,有几个开发人员正在处理该项目,有一点似乎无法正确迁移核心数据模型。最终结果是,从特定版本的应用程序升级到当前版本的应用程序的用户无法将其上下文保存到商店(当应用程序进入后台时会发生此保存)。

记录的错误如下:

This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.

幸运的是,用户不太可能从这次崩溃和错误中注意到太多,因为它发生在应用程序退出期间,并且该应用程序旨在简单地从本地丢失的Web检索任何数据,因此失败的保存不是与任何用户创建的数据丢失一样重要。当然,这不太理想,必须重新下载未在app退出时保存到商店的数据。

我的问题最终是如何解决这个问题呢?

我的想法是发布一个完全重置核心数据持久模型的次要更新。擦除任何旧的数据存储,并重新开始(记住所有数据都来自服务器)。用户不会有数据丢失,这将解决未来的问题。有更好的主意吗?

另外,如果这就是我决定做事的方式,我究竟会怎么做呢?我只是查看我的包并删除任何.momd文件,然后重新创建一个具有不同名称的新文件?或者删除不必要的只是给新名称会给出理想的结果?

1 个答案:

答案 0 :(得分:2)

要完全重置,您可以在applicationDidFinishLaunching中添加支票:

  1. 检查用户默认值中的标记,表明您已迁移
  2. 如果未迁移,请删除当前商店文件
  3. 在用户默认设置中设置标记,以便将来不再“升级”
  4. 就是这样,打开商店并下载所需的数据
  5. 修复:

    1. 从您的第一个版本开始,逐步检查每个版本并运行它直到找到问题
    2. 找到问题后,找出导致崩溃的原因 - 导致崩溃的原因
    3. 修复迁移(非常依赖迁移,请问一个新问题......)