Coredata的版本升级
来源:互联网 发布:矢量图网上制作软件 编辑:程序博客网 时间:2024/05/18 02:30
在开发的后期,可能因为完善和修复功能,需要对Coredata数据库表进行修改,这样就需要对CoreData进行版本升级。
比如你修改了DB字段以后,用户在旧版本上升级为新版本时会crash. 因为升级只升级了应用app,没有升级目录下的数据据db文件。在开发当中,只需要删除了app再重新安装一次就可以解决了。如果是上传到appstore的软件,那你可要小心处理了,没有经过整合migrate处理的app,用户升级后必然会crash.这时就需要用到Coredata的升级处理了。 版本升级步骤:
一、1.新建模型版本 (选中可视化建模文件, 点击editor, 选择addModelVersion)
二、把当前新建的模型版本设置成选中状态,选择为当前版本 (先选中总的模型版本, 然后在属性检查器中的第一个标签有个current,选中新建的即可)
三、删除旧的映射文件类,重新创建新映射文件(cmd + n , 在coreData选项卡中, 选择NSManageObject subclass), 记住创建时选择新的model.(因为类的属性都变了,所以要生成新的关联类)
四、在生成NSManageObjectContext时,把数据连接器persistentStoreCoordinator中的懒加载方法中, option选项由nil变成一个字典, key为NSMigrate, value为@{YES}, 该选项的意思是, 模型版本自动升级 (数据库升级)
NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES];//添加的字典if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:optionsDictionary error:&error]) { } //添加 *optionsDictionary,原来options:nil 改成options:optionsDictionary
重新编译一下。你可以进入沙盒打开表文件,你会发现,如果是以前的数据,新加的属性字段都为空。这样,你上架更新后都不会因为数据原因造成崩溃,而且也不会把以前的数据弄丢。是不是也插简单的啊?
1 0
- Coredata的版本升级
- iOS coredata的使用及版本升级
- iOS coredata的使用及版本升级
- Coredata版本升级注意事项
- coreData的升级(迁移)
- CoreData的版本迁移
- CoreData版本升级和数据迁移
- CoreData的操作(使用, 升级)
- iOS 版本迭代 App升级安装 CoreData数据库升级
- CoreData(数据库升级 )版本迁移-iOS App升级安装
- CoreData(数据库升级 )版本迁移-iOS App升级安装
- CoreData升级
- CoreData的版本迭代
- ios coreData 根据应用版本升级进行更新
- iOS 使用CoreData Model Version版本升级处理
- 学习coredata 升级的时候问题
- IOS APP 升级安装-coredata 的迁移,升级
- 关于CoreData版本迁移的问题
- Android 开发中的日常积累
- AIM Tech Round 3 (Div. 1) C. Centroids(树形dp)
- 如何让选择文件的打开方式中有你的app
- Android PendingIntent使用的特殊情况
- 关系型数据库
- Coredata的版本升级
- MAMP 环境下为 php 添加 pcntl 扩展
- Shader 属性
- python版 聊天软件
- 四种线程安全的单例设计模式
- 程序员的幸福敲门
- Spring in Action(第五章 征服数据库)学习笔记
- nav
- unity-动画状态机Animator