iOS-CoreData详解与使用

上面已经说完了SQLite和FMDB以及两者的区别,本篇将讲述iOS中另一个存储方式,CoreData的使用。通读下来大约20-25分钟,后续还会根据项目中问题,不断更新。

 

一、预备知识

在了解CoreData,大家有必要了解对象关系映射(英语称object Relational Mapping,简称ORM)。

1.ORM

ORM是通过使用描述对象和数据库之间映射的元数据,可以实现将对象自动持久化到关系数据库当中。ORM的存在为了解决面向对象与数据库科恩干存在不匹配的一种技术。

 

二、初识CoreData

1.CoreData是一种在iOS 3系统中,也是苹果自己推出的数据存储框架,采用了一种ORM(对象关系映射)的存储关系。CoreData一个比较大的优势在于在使用CoreData过程中不需要我们编写SQL语句,也就是将OC对象存储于数据库,也可以将数据库数据转为OC对象(数据库数据与OC对象相互转换)。

 

2.CoreData几个类

(1)NSManagedObjectContext

意思是托管对象上下文,数据库的大多数操作是在这个类操作

(2)NSManagedObjectModel

意思是托管对象模型,其中一个托管对象模型关联到一个模型文件,里面存储着数据库的数据结构。

(3)NSPersistentStoreCoordinator

意思是持久化存储协调器,主要负责协调上下文玉存储的区域的关系。

(4)NSManagedObject

意思是托管对象类,其中CoreData里面的托管对象都会继承此类。

 

三、CoreData基本使用

 下面开始讲解CoreData的基本使用,里面会插入图片和代码,可能内容比较多,希望大家静下来看完(比较考验大家的耐心程度)。

使用CoreData方式,有两种可能。第一种是项目开始就创建带有CoreData数据库,还有一种项目已经开始了,重新接入CoreData,下面我们第三部分主要讲述这两种方式的过程。

1.项目开始就使用CoreData

我们在创建项目的时候,勾选Use Core Data

iOS-CoreData详解与使用

iOS-CoreData详解与使用

如果利用项目刚建时,勾选Use Core Data,这样在目录中就会出现,后缀名为.xcdatamodeld。

打开AppDelegate发现类中多了以下内容

AppDelegate.h

iOS-CoreData详解与使用

 

AppDelegate.m中

iOS-CoreData详解与使用

iOS-CoreData详解与使用

我们可以点开testCoreData.xcdatamodeld文件,我们可以看到实体和关系。如下图

iOS-CoreData详解与使用

通过点击左色红色添加红色,右边红色添加属性,在这中间我们还需要留意一些细节。

(1)

iOS-CoreData详解与使用

创建后可以清楚的看到模型文件左侧的列表,有三个Entities、Fetch Requests以及Configurations三个选项,意思分别是:实体,请求模版以及配置信息。

(2)

iOS-CoreData详解与使用

添加完一个实体后,你会发现一个实体是对应着三个内容,分别是Attributes、Relationships和Fetched Properties,意思分别是:属性、关联关系以及获取操作。

(3)实体属性类型

iOS-CoreData详解与使用

我们来分别简单解释类型的意义,从上往下

Undefined:也就是默认值,如果参与编译会报错

Integer 16:代表整数,范围是-32768 ~ 32767

Integer 32:代表整数,范围是-2147483648 ~ 2147483647

Integer 64:代表整数,范围是–9223372036854775808 ~ 9223372036854775807,还是很大的,较少用

Double:代表小数

Float:代表小数

String:代表字符串,NSString表示

Boolean:代表布尔值,使用NSNumber表示

Date:代表日期时期

Binary Data:代表二进制,是用NSData表示

Transformable:代表Objective对象,要遵守NSCoding协议

(4)关联关系

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdsxx.html