天天看点

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

CoreData 是 iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据。使用 CoreData 框架,程序员可以很轻松有效地通过面向对象的接口管理数据。CoreData 框架提供了 对象 - 关系映射 (ORM) 的功能,即能够将 OC 对象转化成数据,保存在 SQLite3 数据库文件中,也能够将保存在数据库中的数据还原成 OC 对象,在数据操作过程中,无需编写任何 SQL 语句。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

模型文件及实体(Entity)。要使用 CodeData,首先需要定义模型文件,描述应用程序中的所有实体(Entities),所谓实体是跟数据库进行映射的对象。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

NSManagedObject:对应数据库中的一条记录。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

CoreData 主要对象关系示意图类似于数据库的句柄,handle,用来操纵数据库 持久化存储调度者,是数据库与对象之间的,在开发中。只会用到一次,如果不理解,直接粘代码。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

CoreData 主要对象

NSManagedObjectContext:负责应用和数据库之间的交互 (CRUD)。

NSPersistentStoreCoordinator:添加持久化存储库(如 SQLite 数据库), 是物理数据存储的物理文件和程序之间的联系的桥梁 ,负责管理不同对象上下文。

NSManagedObjectModel:被管理的对象模型。

NSEntityDescription:实体描述。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

配置

1、在工程中新建 Data Model 数据模型文件。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

2、在 Data Model 模型文件中添加 Entity 实体,修改实体名称,并在实体中添加模型属性。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

3、在模型文件右侧属性列表的 Code Generation 中设置生成 NSManagedObject subclass 子类的使用语言。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

4、在模型文件右侧属性列表的 Class => Codegen 中设置 Manual/None。如果不修改此项程序编译时会报 Linker command failed with exit code 1 (use -v to see invocation) 错误。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

5、基于 Data Model 数据库文件中的 Entity 创建 NSManagedObject subclass 类。Xcode8 从系统菜单的 Editor 创建,创建后文件中多出来 4 个文件。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

6、在需要使用 CoreData 的文件中。

搭建 CoreData 环境

插入数据

删除数据

修改数据

查询数据

CoreData 是 iOS 开发中经常使用的数据持久化的技术。但其操作过程稍微繁琐,即使你只是实现简单的存取,不涉及请求优化,也要进行许多配置工作,代码量在动辄几十行,对新手来说也需要较大时间成本。

简化 Core Data 相关代码

允许清晰,简单,单行获取

当需要优化请求的时候,仍然允许修改 NSFetchRequest

如果你在使用 MagicalRecord 方法的时候不想带 <code>MR_</code> 前缀,直接用 findAll 代替 <code>MR_findAll</code>,就在引入头文件 CoreData+MagicalRecord.h 之前增加 <code>#define MR_SHORTHAND</code> 即可。

创建 Model。创建一个 Model.xcdatamodeld ,添加一个 Person Entity,添加 age firstname lastname 三个属性。最后使用 Editor =&gt; Create NSManagedObject Subclass ORM 生成 Person 类。

iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 数据库存储1、CoreData 数据库2、CoreData 的使用3、MagicalRecord 的使用

在使用的文件中引入头文件

初始化