ios-存储

iOS CoreData Xcode8 数据库升级迁移 (Obj

2017-09-12  本文已影响50人  Yuency

前言

项目升级 项目以前使用的是 CoreData, 现在表里面需要新增加一个字段, 或许不仅仅是增加字段这么简单.

我们先简单玩一下数据库

第 1 步

新建一个工程,这里我先不勾选 CoreData 选项,进入工程之后再添加.


1.png

第 2 步

2.png

第 3 步

3.png

第 4 步

4.png

第 5 步

这时候生成完了的类直接编译是报错的


5.png

第 6 步

解决报错, 然后重新生成一下这些类


6.png

第 7 步

重新生成之后再编译


7.png

第 8 步

我发现现在生成的类的名字和之前使用 Xcode7生成的不一样啊. 去百度了一下. 这个是可以改名字的. 直接改文件名就可以, 同时记住改里面的 #import ""

8.png

第 9 步

在 viewDidLoad 里面添加如下代码

然后 Command + R, 就可以愉快玩耍了


9.png

我们再简单升级一下数据库

第 1 步

App迎来了下一个版本,演员表里面的演员新增了一个字段 "info", 这时候需要做升级处理,否则可能造成崩溃.


1.升级.png

第 2 步

2.png

第 3 步

在右侧窗口选择数据库的版本


3.png

第 4 步

在新数据库模型的实体里面增加属性


4.png

第 5 步

把原来的生成的类都删掉,然后老方法重新生成一次.


5.png

第 6 步

生成完了之后可以改个名字


6.png

第 7 步

添加一个字典,为了配合数据库升级,然后在新字段中写点数据,如下图:
Command + R, 再玩一次


7.png

第 8 步

效果图:


8.png

关键代码:

NSDictionary *optionsDictionary = @{NSMigratePersistentStoresAutomaticallyOption: @YES, NSInferMappingModelAutomaticallyOption: @YES};

讲真,MarkDown 里面插入代码段很难用.

后续

附上我曾经拜访过的文章
iOS CoreData介绍和使用(以及一些注意事项)

Core Data入门

(Xcode 8.1 )CoreData 的使用

iOS CoreData版本升级和数据库迁移

上一篇 下一篇

猜你喜欢

热点阅读