首页 > 代码库 > CoreData的DataModel的版本控制和迁移(仅介绍轻量迁移)
CoreData的DataModel的版本控制和迁移(仅介绍轻量迁移)
使用了CoreData的APP每次发布一个新版的时候,都应该创建一个新版数据模型。否则老用户升级后容易Crash。
在Xcode中单击XXXXX.xcdatamodel,点击Editor菜单,并选择Add Model Version,接着会被要求输入新版本的名称。然后点击Finish。
生成的XXXXX 2.xcdatamodel是老版本数据模型,打勾的XXXXX.xcdatamodel是新版将要发布的数据模型,所以版本号越高,代表文件越老,下次再创建一个版本时,这个旧版本将被命名为XXXXX 3.xcdatamodel,随着版本的积累,这些数字的意义逐渐显现出来。
CoreData支持两种不同类型的迁移。轻量迁移和标准迁移。
如果你添加或移除了实体中的属性,或者在数据模型中新增或删除实体,轻量迁移即可,但如果将一个实体切分成两个不同的实体,或者将某个属性从一个实体中移动到另一个实体,轻量迁移无效,需要用标准迁移。
大多数普通修改均可由轻量迁移来完成。
方法是将AppDelegate的persistentStoreCoordinator方法做部分修改
将
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
修改为
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,NSInferMappingModelAutomaticallyOption:@YES}; if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
即可。
标准迁移详见:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html
转载请注明原著:http://blog.csdn.net/marvindev
CoreData的DataModel的版本控制和迁移(仅介绍轻量迁移)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。