【发布时间】:2013-08-26 17:06:19
【问题描述】:
我有一个应用程序进行了多次核心数据迁移,有几个开发人员在该项目上工作,有一次似乎无法正确迁移核心数据模型。最终结果是,从应用程序的特定版本升级到应用程序的当前版本的人无法将他们的上下文保存到商店(当应用程序进入后台时会发生这种保存)。
记录的错误如下:
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.
幸运的是,用户不太可能从这个崩溃和错误中注意到太多,因为它发生在应用退出期间,并且应用旨在简单地从网络中检索本地丢失的任何数据,因此不会出现保存失败的情况就像丢失任何用户创建的数据一样重要。当然,这不太理想,必须在应用退出时重新下载未保存到商店的数据。
我的问题最终是如何解决这个问题?
我的想法是发布一个小更新,彻底重置核心数据持久化模型。清除所有旧的数据存储,重新开始(记住所有数据都来自服务器)。用户不会丢失数据,这将解决未来的问题。有更好的主意吗?
另外,如果这就是我决定做事的方式,我将如何正确地做这件事?我是否只需查看我的捆绑包并删除任何 .momd 文件,然后重新创建一个具有不同名称的新文件?还是删除不必要的,只是提供新名称会产生所需的结果?
【问题讨论】:
-
为什么不直接修复错误的迁移?
-
这是一个有效的问题。也许这可能需要一个单独的问题。但是,我很难确定不良迁移来自哪个版本。你能给我一些关于检测这个的建议吗?修复这种糟糕的迁移会比我提出的解决方案更容易吗?我将如何解决错误的迁移?
-
您正在使用版本控制?因此,您可以从第一个版本开始,逐步检查每个版本并运行它,直到找到问题为止。
-
一旦发现问题,我将如何解决它?对不起,我的菜鸟问题,除了香草轻量级迁移之外,我对其他任何东西都没有经验。
-
大约需要下载多少数据才能开始清理? 10KB? 100KB? 1MB?
标签: ios core-data core-data-migration