我一直在为我的应用程序使用Core Data,并进行了许多次升级(大约10-11次),但用户现在抱怨应用程序发布后存储在核心数据数据库中的数据丢失
渐变。
以前,在发布新版本之后,我要从旧版本创建新的模型版本,并使用相同的模型,并在需要时进行更改。发布之前,我正在更新.xcmappingmodel模型。
现在,我准备好发布下一个版本了,我心中没什么疑问:
1)我们可以在xcode中有多个.xcmappingmodel文件吗?
2)我们是否需要手动执行从模型到模型的数据传输。示例:-型号1.0到1.1、1.1到1.2、1.2到1.3以及不久。
假设没有任何应用程序用户升级并使用较旧版本的应用程序(例如1.0),现在我已经准备好发布3.0。我们是否需要为逐步迁移提供功能?
例如:-1.0到1.1,1.1到1.2以及直到3.0,否则他的数据库将自动升级到较新的版本,同时保留以前存储的数据。
任何有关如何解决这种情况的建议将不胜感激。
提前致谢。
最佳答案
是的,对于数据模型版本中的每个步骤,您不仅可以而且需要多个映射模型。所以1.0到1.1 1.1到1.2
这样,商店协调员可以将旧模型1.0升级到例如新模型3.0。您需要告诉商店协调员进行更新。这称为迁移。
参见例如:https://developer.apple.com/library/ios/documentation/cocoa/reference/CoreDataFramework/Classes/NSPersistentStoreCoordinator_Class/NSPersistentStoreCoordinator.html#//apple_ref/occ/instm/NSPersistentStoreCoordinator/addPersistentStoreWithType:configuration:URL:options:error:
有关CoreData迁移的更多信息https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html
关于ios - 核心数据迁移-我们在xcode中可以有多个.mapping模型文件吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21427552/