ios - 应用程序更新后核心数据存储为空 - 但数据模型未更改

标签 ios objective-c core-data automatic-ref-counting magicalrecord

我正在为使用 Core Data 来保存数据的应用程序开发更新。 我使用 Magical Record 来简化核心数据的处理。

本次更新不涉及对数据模型的任何更改。

然而,当我在设备上安装新更新时,现有数据被删除,应用程序打开时显示一个空数据存储。没有记录有关数据迁移问题的警告或错误消息。该应用程序也不会崩溃,并且在设置核心数据堆栈之前将 shouldDeleteStoreOnModelMismatch 设置为 NO ([MagicalRecord setShouldDeleteStoreOnModelMismatch:NO];)。

没有后续的 Core Data 问题(新数据保持良好)。

本次更新中应用的主要变化有:

  • 将应用程序转换为 ARC
  • 将应用转换为将 CocoaPods 用于外部库
  • 将 MagicalRecord 库从 v1.8.3 更新到 v2.1

在我的 App Delegate 中,我使用以下方法设置了核心数据堆栈:

[MagicalRecord setupAutoMigratingCoreDataStack];

有谁知道是什么原因造成的?

最佳答案

当您有一个空存储时,通常这意味着您的迁移模型没有正确升级,或者您的模型架构标识符与数据存储的版本标识符不匹配。

确保保留核心数据模型的两个版本(之前和之后)。这就是核心数据如何将商店与您的模型相匹配,以及如何知道哪个版本是最新版本。

关于ios - 应用程序更新后核心数据存储为空 - 但数据模型未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16307379/

相关文章:

ios - Restkit 本地数据映射操作似乎没有保存到磁盘

ios - UITableViewController loadView 加载了 nib 但没有得到 UITableView。

ios - 水平渐变不适用于动态宽度内容

ios - 使用 StoryBoard 在容器 View 中加载 UIViewController

ios - Objective-C 三元运算符产生 @"null"或 bool 值

JavaScriptCore - 在 iOS 中访问 DOMParser

ios - iOS 水平居中约束

objective-c - 如何在 Xcode 调试器中查看 NSDictionary 变量的内容?

ios - Swift 从 ManagedObjectContext FetchRequest 获取日期数组

ios - 重建时持久存储条目保留但数据为空