CoreData 之 magicRecoard的使用

来源:互联网 发布:大连u盘数据恢复公司 编辑:程序博客网 时间:2024/06/07 05:37
如需使用系统的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];


0 0
原创粉丝点击