iOS开发 - MagicalRecord

来源:互联网 发布:mac 查看剩余空间 编辑:程序博客网 时间:2024/05/29 12:28

常用方法

•   将字典导入model 类似于JSONModel的功能    News * model = [News MR_importFromObject:dict];·   将数组导入model 返回model数组 类似于JSONModel的功能    self.dataArr = [NSMutableArray arrayWithArray:[News MR_importFromArray:arr]];·   查询最大/最小值    Person * person = [Person MR_findFirstOrderedByAttribute:@"age" ascending:NO];

使用过程

1.导入第三方
//初始化
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@“coreData文件名”];

2.创建coredata文件

3.#import “MagicalRecord.h”

4.增

Person * person = [Person MR_createEntity];//要存储的具体的数据person.age = @(arc4random()%20 +10);person.name =@"名字";//保存[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

5.删

//根据条件 获取要删除的数据NSArray * arr = [Person MR_findByAttribute:@"age" withValue:@(21)];        for (Person * person in arr) {     //删除     [person MR_deleteEntity];     break;}[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

6.改

Person * person = [Person MR_findFirst];//修改person.name = @"小米";person.age = @(4);//同步[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

7.查

NSArray * allArr = [Person MR_findAll];        for (Person * person in allArr) {            NSLog(@" %@ %d ",person.name,person.age.integerValue);}         NSPredicate * pred = [NSPredicate predicateWithFormat:@"%K>%@",@"age",@(20)];[Person MR_findAllWithPredicate:pred];

缓存实例

1.数据源加载时 :  懒加载方法中为获取本地缓存文件-(NSMutableArray *)dataArr{if (!_dataArr) {          NSArray * arr = [News MR_findAll];    _dataArr = [NSMutableArray arrayWithArray:arr];}return _dataArr;2.请求数据时 :  创建model时应该创建实体News * model = [News MR_createEntity];当数据请求下来的时候 应该根据唯一标识(主键)来判断是否已经缓存            NSArray * arrRes = [News MR_findByAttribute:@"docid" withValue:dict[@"docid"]];                  if (!arrRes.count) {      //如果查询docid来判断 该数据是否已经存储了      //如果没有存储 就插入数据      [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];}第一次数据请求结束时应该清空懒加载时数据源中的数据

数据结构变更时引发crash,解决方案:
http://blog.csdn.net/ysy441088327/article/details/8606019

0 0
原创粉丝点击