ios 数据持久化之magical record(基于coredata)

一个偶然的机会看到了magical record,就试了下,发现挺好用,

Magic Record是Saul Mora写的一个开源的类库,目的是使得Core Data使用起来更加的便捷容易。这个库的开发灵感来自于Ruby on Rails(Web 应用程序框架)中的active record模式

具体安装步骤:

http://blog.csdn.net/kuizhang1/article/details/21200367

具体使用:

/*添加记录*/

Person*person = [PersonMR_createEntity];

person.firstname =@"Frank";

person.lastname =@"Zhang";

person.age =@26;

[[NSManagedObjectContextMR_defaultContext]
MR_saveToPersistentStoreAndWait];

//

//    /*查询*/

//    NSArray*persons = [Person MR_findAll];

//    NSLog(@"%d",[persons count]);

//    for (Person*persontemp in persons) {

//        NSLog(@"firstname:%@----lasename:%@----age:%@",persontemp.firstname,persontemp.lastname,persontemp.age);

//    }

//    //查找数据库中的所有Person。

//    NSArray *persons = [Person MR_findAll];

//

//    //查找所有的Person并按照first name排序。

//    NSArray *personsSorted = [Person MR_findAllSortedBy:@"firstname" ascending:YES];

//

//    //查找所有age属性为25的Person记录。

//    NSArray *personsAgeEuqals25   = [Person MR_findByAttribute:@"age" withValue:[NSNumber numberWithInt:25]];

//

//    //查找数据库中的第一条记录

//    Person *person = [Person MR_findFirst];

/*改*/

//    NSArray*wellperson = [Person MR_findByAttribute:@"lastname" withValue:@"Zhang" andOrderBy:@"age" ascending:YES];

//    for (Person*persontemp in wellperson) {

//       persontemp.lastname = @"kun";

//    }

//    [[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];

//    /*查询*/

//    NSArray*persons = [Person MR_findAll];

//    NSLog(@"%d",[persons count]);

//    for (Person*persontemp in persons) {

//        NSLog(@"firstname:%@----lasename:%@----age:%@",persontemp.firstname,persontemp.lastname,persontemp.age);

//    }

/*删除*/

//  delete数据库中所有人

//    [Person MR_truncateAll];

//    [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

// 
根据条件delete特定的某个人

NSArray *personsdelete = [PersonMR_findByAttribute:@"lastname"withValue:@"Zhang"andOrderBy:@"age"ascending:YES];

NSLog(@"%d",[personsdeletecount]);

for (Person *personin personsdelete) {

[person
MR_deleteEntity];

}

[[NSManagedObjectContextMR_defaultContext]
MR_saveToPersistentStoreAndWait];

Magical
Record的出现在一定程度上缓解了这个问题,降低了Core Data的使用门槛,相对于直接使用coredata更为简洁高效而且使用过程非常简单

magical
record第三方下载:https://github.com/magicalpanda/MagicalRecord

时间: 2024-10-21 05:05:56

ios 数据持久化之magical record(基于coredata)的相关文章

iOS数据持久化存储

本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods 相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每个客户端软件都需要做的.简单如"是否第一次打开"的BOOL值,大到游戏的进度和状态等数据,都需要进行本地持久化存储.这些数据的存储本质上就是写磁盘存文件,原始一点可以用iOS本身支持有NSFileManager这样的API,或者干脆C语言fwrite/fread,Cocoa Touch本身

iOS数据持久化方式分析

iOS数据持久化的方式一般为:plist文件写入.对象归档.SQLite数据库.CoreData. plist文件写入.对象归档一般用于小的数据量. SQLite数据库.CoreData则用于大的数据量. SQLite是一款轻型的数据库,是一种关系型数据库管理系统,他的设计目的是嵌入式设备中使用. SQLite占用资源非常低,非常适合移动设备中使用,而且是开源免费的 SQLite的数据库操作其实和常规的数据库操作流程是一样的: 1.打开数据库 sqlite3_open() 2.准备SQL语句,采

iOS -数据持久化方式-以真实项目讲解

前面已经讲解了SQLite,FMDB以及CoreData的基本操作和代码讲解(CoreData也在不断学习中,上篇博客也会不断更新中).本篇我们将讲述在实际开发中,所使用的iOS数据持久化的方式以及怎么会使用到这些方式,都会以本人实际开发的场景为例,大约需要花10-15分钟,欢迎大家指正. 一.前言 和大家说一个真实故事,前年我去美图面试(当时的技术仅仅是UI和接口的实现,并不注重很多底层实现和很多概念的原理,换句话说,就是真正的码农),过了技术第一轮和第二轮(前两年的也就是问问技术点的实现),

IOS数据持久化之归档NSKeyedArchiver

IOS数据持久化的方式分为三种: 属性列表 (自定义的Property List .NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等) 下面主要来介绍一个归档NSKeyedArchiver. 归档(又名序列化),把对象转为字节码,以文件的形式存储到磁盘上:程序运行过程中或者当再次重写打开程序的时候,可以通过解归档(反序列化)还原这些对象. 归档方式: 对Foundation框架中对象进行归档 对自定义的内容进行归档

iOS数据持久化之二——归档与设计可存储化的数据模型基类

iOS数据持久化之二--归档与设计可存储化的数据模型基类 一.引言 在上一篇博客中,我们介绍了用plist文件进行数据持久化的方法.虽然简单易用,但随着开发的深入,你会发现,这种方式还是有很大的局限性.试想,如果我们可以将用户的登录返回信息模型,游戏中角色的属性信息模型进行直接的持久化存取,那是不是非常爽的事,幸运的是,我们可以通过归档,来设计一个这样的数据模型. 二.先来精通归档吧 归档也是iOS提供给开发者的一种数据存储的方式,事实上,几乎所有的数据类型都可以通过归档来进行存取.其存储与读取

iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver

IOS数据持久化的方式分为三种: 属性列表 (plist.NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等 归档(又名序列化),把对象转为字节码,以文件的形式存储到磁盘上:程序运行过程中或者当再次重写打开程序的时候,可以通过解归档(反序列化)还原这些对象.本文主要介绍swift实现iOS数据归档. 归档Foundation框架对象 func archiveData(){ var path: AnyObject=NS

iOS数据持久化

数据的存储有两种:内存和闪存.内存存储是临时的,运行时有效的,但效率高,而闪存则是一种持久化存储,但产生I/O消耗,效率相对低. 归档:把内存数据转移到闪存进行持久化操作. 常用的数据存储方案: 1)NSUserDefaults,用于存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息,它通过一个工厂方法返回默认的.也是最常用到的实例对象.这个对象中储存了系统中用户的配置信息,开发者可以通过这个实例对象对这些已有的信息进行修改,也可以按照自己的需求创建新的配置项. 2)S

iOS数据持久化-OC

沙盒详解 1.IOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行. 通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容

iOS 数据持久化之NSUserDefaults

原创Blog,转载请注明 blog.csdn.net/hello_hwc 前言:iOS的数据持久化存储分为很多种 普通文件,plist NSUserDefaults CoreData KeyChain 本文讲解NSUserDefaults的使用 StandardUserDefaults 大部分的时候使用StandardUserDefaults来保存数据,这是一个共享的UserDefaults,意味着在程序的任意一个地方访问到的都是同一个UserDefaults 写数据 swift代码 var u