我正在开发一个应用程序的更新,它使用核心数据来持久化数据。我使用魔法记录使处理核心数据更容易。
此更新不涉及对数据模型的任何更改。
然而,当我在设备上安装新的更新时,现有的数据就会被删除,应用程序就会打开一个空的数据存储。没有关于记录的数据迁移问题的警告或错误消息。该应用程序也不会崩溃,在建立核心数据堆栈([MagicalRecord setShouldDeleteStoreOnModelMismatch:NO];)之前,将[MagicalRecord setShouldDeleteStoreOnModelMismatch:NO];设置为NO。
没有后续的核心数据问题(新数据保持良好)。
在此更新中对应用程序所做的主要更改如下:
在我的中,我使用以下方法设置了核心数据堆栈:
[MagicalRecord setupAutoMigratingCoreDataStack];有人知道是什么导致了这一切吗?
发布于 2013-04-30 19:44:34
当您有一个空存储时,通常意味着您的迁移模型没有正确地提升,或者您的模型模式标识符与数据存储的版本标识符不匹配。
确保保留核心数据模型的两个版本(前后)。这是核心数据如何与您的模型匹配存储,以及如何知道哪个版本是最新版本。
发布于 2014-04-01 12:38:50
删除存储后,需要指定要自动用新存储替换存储,如下所示。
[MagicalRecord shouldAutoCreateDefaultPersistentStoreCoordinator]; [MagicalRecord setShouldDeleteStoreOnModelMismatch:YES]; [MagicalRecord setupAutoMigratingCoreDataStack];
https://stackoverflow.com/questions/16307379
复制相似问题