CoreData不能再低调了
作为苹果官方推荐的数据管理模型,肯定会好用。最近我也特别喜欢用它,因为简单简单。
1、建立一个自带CoreData的项目:
2、建立一个命名为Person
的CoreData对象:(其实在sqlite对应的建立了一个person表)
3、给Person
对象添加name
和age
的属性:(其实在person表添加了2个字段)
4、导入CoreData第三份神器库:CoreDataEnvir,具体的使用这里说明很清楚
5、使用CoreDataEnvir和本地的HCoreData.xcdatamodeld
相互关联:(可以在沙盒找到对应的db.sqlite)
[CoreDataEnvir registDefaultDataFileName:@"db.sqlite"];
[CoreDataEnvir registDefaultModelFileName:@"HCoreData"];
6、给Person
对象赋值并插入person表中:
Person *qObj = [Person insertItem];
qObj.name = @"harry";
qObj.age = @23.5;
[qObj save];
7、运行项目,沙盒找到对应的db.sqlite并且打开:
8、问题来了,如果我想对Person
添加新的字段,比如address
,那么只要运行项目就会crash(太痛苦了,气的我都快要飞起来了
9、找答案唄[解决1:删除原来的项目重新安装, 解决2:CoreData的数据升级]。这就涉及到了CoreData的数据升级问题了。选择HCoreData.xcdatamodeld
-> Editor
-> Add Model Version
:
10、项目选择新的数据模型:HCoreData 2.xcdatamodel
11、在HCoreData 2.xcdatamodel
的Person
新增address
字段,再删除项目原来的Person
类,重新建立关联HCoreData 2.xcdatamodel
的Person
类(见2):
12、运行,没有问题。插入下面代码:
Person *qObj = [Person insertItem];
qObj.name = @"harry";
qObj.age = @23.5;
qObj.address = @"shenzhen_nanshan_kejiyuan";
[qObj save];
13、还是没有问题,回到7:(非常NICE,看到这个界面高兴的我都快跳起来了
)