3

我正在为使用 Core Data 持久化数据的应用程序开发更新。我使用 Magical Record 使处理 Core Data 变得更容易。

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

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

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

此更新中对应用程序所做的主要更改是:

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

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

[MagicalRecord setupAutoMigratingCoreDataStack];

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

4

2 回答 2

2

删除商店后,您需要指定要自动将商店替换为新商店,如此。

[MagicalRecord shouldAutoCreateDefaultPersistentStoreCoordinator]; [MagicalRecord setShouldDeleteStoreOnModelMismatch:YES]; [MagicalRecord setupAutoMigratingCoreDataStack];

于 2014-04-01T12:38:50.767 回答
2

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

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

于 2013-04-30T19:44:34.043 回答