iOS:OC Lib:MagicalRecord
# MagicalRecord 2.1 ## 前言 CoreData是iOS开发中经常使用的数据持久化的技术。但其操作过程稍微繁琐,即使你只是实现简单的存取,不涉及请求优化,也要进行许多配置工作,代码量在动辄几十行,对新手来说也需要较大时间成本。 MagicalRecord是OC的一个库,协助方便CoreData的工作。其吸收了Ruby on Rails的Active Record模式,目标是: * 简化Core Data相关代码
* 允许清晰,简单,单行获取
* 当需要优化请求的时候,仍然允许修改NSFetchRequest ## 安装 1、在 [github](https://github.com/magicalpanda/MagicalRecord) 上下载MagicalRecord 2、下载完成,将MagicalRecord 文件夹拖到Xcode中,添加进项目。添加CoreData framework。 3、在PCH文件中添加 **CoreData+MagicalRecord.h** 4、**Option:** 如果你在使用MagicalRecord方法的时候不想带**MR_** 前缀,e.g. 直接用**findAll** 代替 **MR_findAll**,就在PCH中在**CoreData+MagicalRecord.h**之前增加 **#defin MR_SHORTHAND** 即可。 ## 环境需求 MagicalRecord 需要的环境: * iOS 5.x 及以上, Mac OS 10.7及以上
* ARC iOS4,无ARC ,可以使用兼容版本,1.8.3 ## 用法 ### 创建Model 创建一个Model.xcdatamodeld ,添加一个Person Entity,添加age firstname lastname 三个属性。最后使用*Editor > Create NSManagedObject Subclass* ORM生成Person类。 ### 初始化 在AppDelegate中: - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[MagicalRecord setupCoreDataStackWithStoreNamed:@"Model.sqlite"];
// ...
return YES;
} - (void)applicationWillTerminate:(NSNotification *)aNotification
{
[MagicalRecord cleanUp];
} 这样就搞定初始化啦!! ### 增 Person *person = [Person MR_createEntity];
person.firstname = @"Frank";
person.lastname = @"Zhang";
person.age = @26;
[[NSManagedObjectContext MR_defaultContext] MR_save]; ### 查 //查找数据库中的所有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]; ### 改 Person *person = ...;//此处略
person.lastname = object;
[[NSManagedObjectContext MR_defaultContext] MR_save]; ### 删 Person *person = ...;//此处略
[person MR_deleteEntity];
[[NSManagedObjectContext MR_defaultContext] MR_save]; ### more * [MagicalRecord 官方](http://cocoadocs.org/docsets/MagicalRecord/2.1/)
* [Magical Record入门教程](http://furybean.github.io/blog/2012/08/01/magicalrecord-tutorial/)
* [Using CoreData with MagicalRecord](http://ablfx.com/blog/article/2)
* [Magical Record: how to make programming with Core Data pleasant](http://yannickloriot.com/2012/03/magicalrecord-how-to-make-programming-with-core-data-pleasant/#sthash.aPAOnVdF.dpbs)
iOS:OC Lib:MagicalRecord的更多相关文章
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...
- iOS开发基础:OC数组对象NSArray的常用方法
本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...
- iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好
转载: iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好 内容来自stack overflow的一个回答:ReactiveCocoa vs RxSwift – pros an ...
- DJI SDK iOS 开发之二:搭建主要的开发环境
本文想介绍搭建主要的DJI SDK iOS下的开发环境,只是DJI官方已经给出了非常具体的执行其demo的教程.网址例如以下: https://dev.dji.com/cn/guide 我这里总结一下 ...
- iOS开发RunLoop学习:一:RunLoop简单介绍
一:RunLoop的简单介绍 #import "ViewController.h" @interface ViewController () @end @implementatio ...
- 马蜂窝 iOS App 启动治理:回归用户体验
增长.活跃.留存是移动 App 的常见核心指标,直接反映一款 App 甚至一个互联网公司运行的健康程度和发展动能.启动流程的体验决定了用户的第一印象,在一定程度上影响了用户活跃度和留存率.因此,确保启 ...
- lib/sqlalchemy/cextension/processors.c:10:20: 致命错误: Python.h:没有那个文件或目录
本文地址:http://www.cnblogs.com/yhLinux/p/4063444.html $ sudo easy_install sqlalchemy [sudo] password fo ...
- VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法
VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...
- iOS Json转换模型库:YYModel
iOS Json转换模型库:YYModel 其实在研究这个库之前,市面上已经有很多类似的模型序列化成JSON及反序列化库(如Mantle.MJExtension)了,推荐他只是因为他高端的性能和容 ...
随机推荐
- spider
from lxml import etreeimport requestsdef getHtml(html): novelcontent = requests.get(html).content re ...
- 第六次课:springMVC与spring的集成
spring在项目中起到了管理bean的作用,即可以通过配置,让系统自动创建所需的对象,通过一定的方式引用系统创建的对象,对象的创建和引用都是由spring自动完成的,用户不必参与,可以直接引用. 实 ...
- [转贴]有关Angular 2.0的一切
对Angular 2.0的策略有疑问吗?就在这里提吧.在接下来的这篇文章里,我会解释Angular 2.0的主要特性区域,以及每个变化背后的动机.每个部分之后,我将提供自己在设计过程中的意见和见解,包 ...
- ThinkPHP提交表单判断上传图片经验总结
在用TP框架开发程序处理接收到的表单的时候,要判断<input type="file" name="img">是否有上传图片,来决定是否要将对应的图 ...
- bootstrap中的Tooltips工具提示的使用问题
在使用bootstrap中的Tooltips时,官方文档中的实例代码若直接放在.container 或 .container-fluid类中时,四个button悬停之后会把button之间的margi ...
- [Leetcode][JAVA] Longest Consecutive Sequence
Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...
- 内存不足 java.lang.OutOfMemoryError: PermGen space
错误: 原因: 改成: -Xms1024m -Xmx1200m -XX:PermSize=256M
- VS20xx IDE开发应用时_拷贝VS环境的库文件DLL到目标设备上运行的操作步骤
问题场景: 当用VSIDE开发完一个项目,在部署到目标环境中时,配置文件OK,但是报错需要调试 <1>Deploying Visual C++ library DLLs as shared ...
- MySQL去除外键关联关系
导数据或者删数据有主外键关联会特别麻烦,可以外键关联,数据处理完再加上. SET FOREIGN_KEY_CHECKS = 0; DELETE FROM frm_userinfo_; SET FORE ...
- 整理ORACLE数据库备份常用术语
本文将讲述在备份是常用的数据库相关术语以及业界定义的专业术语,供大家参考和学习. 数据库相关术语: (1)冷备份: 冷备份是将数据库关闭之后,将数据文件.联机日志文件.控制文件拷贝到其他地方进行备份. ...