如何检索由具有不正确 CoreData 架构的更新 iOS 应用程序导致的数据丢失
Posted
技术标签:
【中文标题】如何检索由具有不正确 CoreData 架构的更新 iOS 应用程序导致的数据丢失【英文标题】:How to retrieve data loss caused by an updated iOS app with incorrect CoreData schema 【发布时间】:2013-03-14 00:54:51 【问题描述】:CoreData 架构出现错误会导致用户在升级其 ios 应用后,使用先前架构的数据无法再看到数据。恢复以前数据的最佳方法是什么?
【问题讨论】:
【参考方案1】:如果您使用轻量级迁移,新架构将替换原始架构。迁移后原始数据不再是数据库的一部分。
您可以为尚未升级的用户发布具有原始架构的新版本。对于那些你可以使用NSMigrationManager
将它们迁移回来。一旦每个人都再次使用旧架构,您就可以正确发布具有新架构的版本。
【讨论】:
谢谢理查德。确定谁已升级到新架构以及谁拥有原始架构的最佳方法是什么? 如果你设置了模型版本,你可以这样做: NSDictionary *metadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:@"" URL:urlParam error:error]; NSArray *modelVersionArray = [元数据对象ForKey:NSStoreModelVersionIdentifiersKey]; NSString *modelVersion = [modelVersionArray objectAtIndex:0];以上是关于如何检索由具有不正确 CoreData 架构的更新 iOS 应用程序导致的数据丢失的主要内容,如果未能解决你的问题,请参考以下文章
在具有 VIPER 架构的应用程序上更新 NSManagedObject
Swift - 如何在加载 ViewController 之前正确实现 CoreData 的更新/设置