CoreData是iOS开发中经常使用的数据持久化的技术。但其操作过程稍微繁琐,即使你只是实现简单的存取,不涉及请求优化,也要进行许多配置工作,代码量在动辄几十行,对新手来说也需要较大时间成本。
MagicalRecord是OC的一个库,协助方便CoreData的工作。其吸收了Ruby on Rails的Active Record模式,目标是:
- 简化Core Data相关代码
- 允许清晰,简单,单行获取
- 当需要优化请求的时候,仍然允许修改NSFetchRequest
安装
1、在 github 上下载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];
相关推荐
标题和描述中提到的“location驱动ios12.4 ios12.3 ios12.2 ios12.1 ios12.0 ios11.0 ios11.4”意味着这是一个关于不同iOS版本中位置驱动的讨论,涵盖了从iOS 11.0到iOS 12.4的多个版本。 1. iOS中的定位服务:iOS...
iOS证书申请和HBuilderX在线打包流程 在iOS应用开发中,申请iOS证书是必不可少的一步骤,而HBuilderX提供了在线打包功能,简化了iOS应用的开发和发布流程。下面将详细介绍iOS证书的申请和HBuilderX在线打包流程。 ...
在iOS应用开发过程中,真机调试是不可或缺的一个环节。它允许开发者在实际设备上测试应用程序,确保其在不同iOS版本和设备上的兼容性和性能。本文将深入探讨如何使用iOS真机调试包,特别是针对iOS 15.1、15.0、14.8...
《iOS Helper:苹果iOS系统的全能助手》 在iOS设备的使用过程中,用户常常会遇到各种问题,例如系统更新、数据管理、应用安装等。而"iOS Helper"正是为解决这些问题而设计的一款强大实用工具,专为苹果iOS系统提供...
总的来说,MagicRecord为iOS开发者提供了一个高效的工具,帮助他们更好地管理和操作Core Data。通过减少繁琐的代码,它让开发者能更专注于业务逻辑,而不是数据层的实现细节。如果你正在使用或计划使用Core Data,...
在iOS开发领域,真机调试是开发者不可或缺的功能,它允许程序员在实际设备上测试应用程序,以确保软件在各种硬件配置和系统版本上运行无误。本文将深入探讨“最新iOS 17.0真机调试包”以及与之相关的Xcode、iOS和Mac...
iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16真机包iOS 16...
ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧版抓包工具ios旧...
【斯坦福iOS7公开课纸牌源码解析】 在iOS开发领域,斯坦福大学的iOS开发课程一直备受开发者们的推崇。这个“斯坦福ios7公开课纸牌源码”是该课程中的一部分,它提供了深入理解iOS应用程序开发的绝佳机会。源码分析...
在iOS开发过程中,真机调试是一项至关重要的环节,它允许开发者在实际的设备上测试应用程序,确保软件在各种硬件配置和系统版本上的表现。这里我们关注的是“iOS11.2 真机调试包”,这是一份专为在iOS 11.2系统上...
在iOS应用开发过程中,真机调试是不可或缺的一环。它允许开发者在真实的设备上测试应用程序,确保其在各种硬件配置和系统版本上的表现。这里提到的"iOS12真机调试包"是针对iOS 12操作系统的一个关键组件,主要用于...
在iOS开发领域,开发者经常需要面对设备兼容性和软件版本的问题。标题"ios device support 11.3"指的是iOS 11.3的设备支持文件,这是Xcode为了确保能够模拟或真机测试iOS 11.3系统版本而必需的一部分。描述中提到,...
小码哥李明杰MJ iOS底层原理视频教程 全部视频都有 小码哥李明杰MJ iOS底层原理视频教程 全部视频都有 小码哥李明杰MJ iOS底层原理视频教程 全部视频都有 小码哥李明杰MJ iOS底层原理视频教程 全部视频都有 小码哥...
iOS 10 App Development Essentials: Learn to Develop iOS 10 Apps with Xcode 8 and Swift 3 Author: Neil Smyth Length: 816 pages Edition: 1 Language: English Publisher: CreateSpace Independent Publishing...
在iOS 17系统中,苹果为用户带来了超过20款全新的铃声,这是一次对用户个性化体验的显著提升。这些铃声设计多样,涵盖了不同的音乐风格和节奏,旨在满足不同用户对于个性化声音选择的需求。无论是喜欢动感、古典还是...
在IT行业中,Cisco IOS(Internetwork Operating System)是思科网络设备的核心操作系统,它负责管理、配置和控制网络设备,如路由器、交换机等。这个操作系统对于理解和操作思科网络设备至关重要,因为它是设备功能...
iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS 15.4真机包iOS ...
在IT行业中,Cisco是一家全球知名的网络设备制造商,其Cisco IOS(Internetwork Operating System)是运行在许多Cisco网络设备上的操作系统,用于控制路由器、交换机和其他网络设备的操作。本篇文章将详细探讨Cisco ...
在iOS系统中,图标是用户界面的重要组成部分,它们为用户提供了一目了然的视觉指示,帮助用户快速识别和理解应用程序的功能。"ios6系统图标原生"是指iOS 6操作系统中,苹果公司官方设计的一系列应用程序图标。这些...