CoreData 之 magicRecoard的使用

如需使用系统的CoreData,十分的繁琐,现在3方库封装的CoreData已经非常的成熟,下面就介绍MagicRecoard   

1导入方式很多,首先,我还是介意从CocoaPods导入,因为这样可以实时的更新我们的3方库,以便使用最新的版本

下面我要介绍一个场景

在数据请求成功后,将数据存入数据库,然后在数据请求失败时,要求读取数据库中的内容


首先,导入 MagicalRecord  你可以用Pods导入,也可以用拖文件的方式导入

包含头文件

#import <MagicalRecord/MagicalRecord.h>


需要在appdelegate里做如下的操作

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
   [MagicalRecord setupAutoMigratingCoreDataStack]

}

- (void)applicationWillTerminate:(UIApplication *)application {
    [MagicalRecord cleanUp];
}


1.在数据请求成功时,我们需要遍历一下数据库,看看有没有数据,有的话就刷新(我这里没有提供刷新的方法),没有的话就新建保存

 NSArray *subArr = [Recommand_Subj MR_findAll];

这里的 Recommand_Subj是一个Entity   


2.写入数据

//创建Entity,相当于创建一张表
Recommand_Subj *recommand_subj= [Recommand_Subj MR_createEntity];
//为表里的字段赋值
recommand_subj.fontId = @"12345";
recommand_subj.fontName = @"哈哈哈哈";
//存储数据
 [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

3.接下来我们要看看读取数据

NSArray *subArr = [Recommand_Subj MR_findAll];
for (Recommand_Subj *recommandSubj in subArr) {
    //我这里将从数据库读取出来的数据对象转化成模型了,其实不转也没什么问题,吧拿到的recommandSubj直接放到数据源数组中使用
     NSDictionary *dict = [recommandSubj mj_keyValues];
      FZRecommandModel *model = [FZRecommandModel mj_objectWithKeyValues:dict];
      [self.subjectPicBosArr addObject:model];
}

截止到这里,我们的数据缓存工作就完成了,现在看起来是不是很简单呢,接下来介绍几个其他的常用的方法

4.更新数据

//查找数据库中的所有Recommand_Subj。
NSArray *recommandSubjArr = [Recommand_Subj MR_findAll];
//查找所有的Recommand_Subj并按照fontid排序。
NSArray *recommandSubjArr= [Recommand_SubjMR_findAllSortedBy:@"fontId" ascending:YES];
//查找所有fontName属性为哈哈哈的Recommand_subj记录。
NSArray *recommandSubjArr= [Recommand_Subj MR_findByAttribute:@"fontName" withValue@“哈哈哈”];
//查找数据库中的第一条记录
Recommand_Subj *recommandSubjArr  = [Recommand_Subj MR_findFirst];


5.添加数据

Recommand_Subj *recommandSubj = [Recommand_Subj MR_createEntity];
recommandSubj.fontid = @"111";
recommandSubj.fontName = @"我是谁";
Recommand_Subj *recommandSubj = [Recommand_Subj MR_createEntity];



6.更新数据

Recommand_Subj *recommandSubj  = 这里查找到对应的Recommand_Subj对象
recommandSubj.fontName = @"被修改过的";
[NSManagedObjectContext MR_defaultContext] MR_save];

7.删除数据

Recommand_Subj *recommandSubj = ...;//此处略
[recommandSubj MR_deleteEntity];
[[NSManagedObjectContext MR_defaultContext] MR_save];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值