iOS开发 - MagicalRecord
2016-03-25 11:26
375 查看
常用方法
使用过程
1.导入第三方
//初始化
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@“coreData文件名”];
2.创建coredata文件
3.#import “MagicalRecord.h”
4.增
5.删
6.改
7.查
缓存实例
数据结构变更时引发crash,解决方案:
/article/2894511.html
• 将字典导入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,解决方案:
/article/2894511.html
相关文章推荐
- iOS开发 - Coredata
- iOS开发 - 单例&线程锁
- 1.3iOS支持多语言(含demo)
- iOS开发 - 多线程
- iOS开发 - 访问相机相册
- iOS沙盒机制浅析
- iOS开发 - 二维码 ZBarSDK
- iOS开发 - 现实动画
- iOS开发 - 多媒体
- IOS 点语法总结
- IOS @class #import
- IOS property 属性
- iOS开发 - Masonry
- iOS开发 - StoryBoard
- IOS 编码规范
- iOS 权限获取大全
- iOS开发 - FMDatabase 使用
- iOS开发 - JGProgressHUD(第三方)
- IOS setNeedsDisplay setNeedsLayout
- iOS开发 - 2D绘图