app中使用了CoreData,并且在下一个版本中有实体变动,比如实体新增字段、修改字段等改动,
那么app在覆盖安装时就要进行数据库迁移,
否则app就会crash。

那如何实现数据库迁移呢?大概需要这几个步骤:

1. 选中你的CoreData.xcdatamodeld文件,选择Xcode菜单editor->Add Model Version
比如取名:mydata2.xcdatamodel
 
 
 
 
 
截图.png
截图.png
2. 起一个名字,也就是当前新版本CoreData文件的名字。然后点击确认。
 
 
 
 
新的CoreData名字
3. 这时候会发现CoreData.xcdatamodeld中多了一个版本文件。如图:
 
 
96780DBF-2880-429C-ABE4-405A844D9ABB.png
4.选择刚才创建的版本,在inspector中的Versioned Core Data Model选择Current模版为CoreData2
 
 
 
 
截图
5.  修改新数据模型CoreData2,在新的文件上添加属性和修改实体。
6. 删除原来的实体文件,重新生成下的类。
删除实体类文件,重新生成新的类文件
7. 在persistentStoreCoordinator中添加代码:
 
 
 
 
 
 
 
 
 
添加代码
8. 重新编译运行就OK了。

PS: Xcode8 系统CoreData类做了不少改动,当然使用起来更简单了,如果您是用Xcode8创建的工程实现版本升级和数据迁移,则直接修改实体,然后重新生成即可,非常简单。具体使用和代码见https://github.com/qindeli/XCode8-CoreData-/tree/master/TestCoreData.

最新文章

  1. Java多线程开发系列之一:走进多线程
  2. android 保存 用户名和密码 设置等应用信息优化
  3. linux fork函数浅析
  4. 转: vim简明教程
  5. [PHP] PHP源码常用代码中的宏定义
  6. meterpreter_paranoid_mode.sh允许用户安全上演/无级连接Meterpreter经检查合格证书的处理程序正在连接到
  7. TensorFlow迁移学习的识别花试验
  8. nodeEE双写与分布式事务要点一二
  9. c#基础之异常处理及自定义异常
  10. orcFile split和读数据原理总结(hive0.13)
  11. 洛谷P1092 虫食算(算竞进阶习题)
  12. .net 后台获取CheckBoxList的值
  13. 微信公众号自定义菜单中添加emoji表情
  14. Centos7编译hadoop异常:Received fatal alert: handshake_failure
  15. zookeeper开发
  16. CSS vertical-algin的使用
  17. Unity2017新功能Sprite Atlas详解
  18. poll 从应用层到内核实现解析
  19. 剑指offer-int类型负数补码中1的个数-位操作
  20. 【转】WireShark 过滤规则

热门文章

  1. Logon Session Times
  2. Ad Exchange
  3. Spring MVC 框架结构介绍(二)
  4. python基础之类的内置__setattr__,__delattr__,__getattr__和 二次加工标准类型(包装)
  5. JS给TR隔行换色,鼠标经过有动感
  6. json的相关操作
  7. 访问hdfs里的文件
  8. Springboot入门-日志框架配置(转载)
  9. C# 创建单例你会几种方式?
  10. 吴超老师课程---Hadoop的分布式集群安装