模拟技术学习
直播中

吴樵

8年用户 232经验值
私信 关注
[资料]

Core Data 的基本概念

Core Data是一种ORM(对象关系映射)技术。ORM是关系模型数据和对象模型类之间的一个纽带。
关系模型和对象模型是有区别的,对象模型更加先进,能描述继承、实现、关联、聚合和组成等复杂的关 系,而关系模型只能描述一对一、一对多和多对多的关系。这两种模型之间的不和协称为阻抗不匹配问题, 而ORM可以解决阻抗不匹配问题。  

Core Data是苹果为Mac OS X和iOS系统应用开发提供的数据持久化技术。它基于高级数据持久化API,它的最层最终是SQLite数据库、二进制文件和内存数据保存,这样开发人员不用再关心数据的存储细问题,不用再使 用SQL语句,不用面对SQLite的C语言的函数.

(1)NSManagedObjectContext(被管理的数据上下文   MOC)


操作实际内容(操作持久层) 作用:插⼊数据,查询数据,删除数据

(2)NSManagedObjectModel(被管理的数据模型 MOM)
数据库所有表格或数据结构,包含各实体的定义信息 作用:添加实体的属性,建立属性之间的关系 操作方法:视图编辑器,或代码 .这个模型包含实体(Entity),特性(Property),读取请求(Fetch Request)等

(3)NSPersistentStoreCoordinator(持久化存储助理)
相当于数据库的连接器 作用:设置数据存储的名字,位置,存储⽅方式,和存储时机
处理底层的对数据文件的读取与写入。一般我们无需与它打交道。


(4)NSManagedObject(被管理的数据记录) 相当于数据库中的表格记录,与 Managed Object Context 相关联
(5)NSFetchRequest(获取数据的请求)相当于查询语句

(6)NSEntityDescription(实体结构) 相当于表格结构
(7)后缀为.xcdatamodeld的包⾥⾯是.xcdatamodel文件,⽤用数据模型编辑器编辑 编译后为.momd或.mom文件
NSSQLiteStoreType。指数据持久化类型是SQLite数据。
NSBinaryStoreType。指数据持久化类型是二进制文件。
NSInMemoryStoreType。指数据持久化类型是内存形式
二, Model class
模型有点像数据库的表结构,里面包含 Entry, 实体又包含三种 Property:Attribute(属性),RelationShip(关系), Fetched Property(读取属性)。Model class 的名字多以 "Description" 结尾。我们可以看出:模型就是描述数据类型以及其关系的。

主要的 Model class 有:

Model Classes
Managed Object ModelNSManagedObjectModel数据模型EntityNSEntityDescription抽象数据类型,相当于数据库中的表PropertyNSPropertyDescriptionEntity 特性,相当于数据库表中的一列  > AttributeNSAttributeDescription基本数值型属性(如Int16, BOOL, Date等类型的属性)  > RelationshipNSRelationshipDescription属性之间的关系  > Fetched PropertyNSFetchedPropertyDescription查询属性(相当于数据库中的查询语句)

1)Entity - NSEntityDescription
Entity 相当于数据库中的一个表,它描述一种抽象数据类型,其对应的类为 NSManagedObject 或其子类。

NSEntityDescription 常用方法:
+insertNewObjectForEntityForName:inManagedObjectContext: 工厂方法,根据给定的 Entity 描述,生成相应的 NSManagedObject 对象,并插入 ManagedObjectContext 中。
-managedObjectClassName 返回映射到 Entity 的 NSManagedObject 类名
-attributesByName 以名字为 key, 返回 Entity 中对应的 Attributes
-relationshipsByName 以名字为 key, 返回 Entity 中对应的 Relationships

2)Property - NSPropertyDescription
Property 为 Entity 的特性,它相当于数据库表中的一列,或者 XML 文件中的 value-key 对中的 key。它可以描述实体数据(Attribute),Entity之间的关系(RelationShip),或查询属性(Fetched Property)。

> Attribute - NSAttributeDescription
Attribute 存储基本数据,如 NSString, NSNumber or NSDate 等。它可以有默认值,也可以使用正则表达式或其他条件对其值进行限定。一个属性可以是 optional 的。

> Relationship - NSRelationshipDescription
Relationship 描述 Entity,Property 之间的关系,可以是一对一,也可以是一对多的关系。

> Fetched Property - NSFetchedPropertyDescription
Fetched Property 根据查询谓词返回指定 Entity 的符合条件的数据对象。

更多回帖

发帖
×
20
完善资料,
赚取积分