CoreData的DataModel的版本控制和迁移(仅介绍轻量迁移)
来源:互联网 发布:青山大禹水利软件 编辑:程序博客网 时间:2024/06/03 00:35
使用了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
PS: 无论是标准迁移还是轻量迁移,在APP上线前都需要做大量的测试,来保证版本更新不会因为数据模型的升级原因导致Crash
转载请注明原著:http://blog.csdn.net/marvindev
1 0
- CoreData的DataModel的版本控制和迁移(仅介绍轻量迁移)
- CoreData的版本迁移
- 关于CoreData版本迁移的问题
- 使用CoreData 和版本迁移
- CoreData的数据迁移
- coreData的升级(迁移)
- CoreData的数据迁移
- CoreData版本迁移(一)
- CoreData版本迁移(二)
- CoreData的使用/以及coreData中的多线程问题/版本迁移(二)
- CoreData版本迁移
- CoreData轻量级版本迁移
- CoreData版本升级和数据迁移
- iOS 数据持久化 CoreData的版本迁移
- iOS 10 coreData 版本迁移
- 使用CoreData的轻量级自动数据迁移
- 使用CoreData的轻量级自动数据迁移
- CoreData 从入门到精通(六)模型版本和数据迁移
- 第15周 项目4-两数和与差(用参数带回结果)
- 寻找发帖水王(上-题目)
- VS2012 ASP.NET 母版页的创建与使用
- hibernate注解
- android LockScreen
- CoreData的DataModel的版本控制和迁移(仅介绍轻量迁移)
- 第十六周项目2-用指针玩字符串
- windows下配置Gitlab
- Ubuntu搭建Hadoop环境
- DS1302,MEGA16,带74HC595的LED数码管显示屏制作万年历
- 内存管理
- openstack集群架构
- php 二维数组 知道keyvalue 怎么得到对应的value
- 绘图的学习