iOS 开发 XMPP即时通讯项目开发(仿微信)-详解之Core data详解

cocoa认知

  • Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。

  • CoreData本质是一个ORM框架 ORM Objective-Relational Mapping 这个映射就是我们的模型文件,一般ORM框架都用XML格式来映射 实体Entity+属性数据库表

  • 托管对象(entity) —既不是单纯 内存对象,也不是数据库中的具体的数据,它介于这两个状态之间的,我们叫他游离态的数据

  • CoreData 不能执行SQL语句 取而代之,操作的是对象, FMDB SQLite 可以直接SQL语句

coredata中的核心对象

这里写图片描述

在上图中,我们可以看到有五个相关模块:

1, Managed Object Model
Managed Object Model 是 述应用程序的数据模型,这个模型包含实体(Entity),特性(Property),读取请求(Fetch Request) 等。(下文都使用英文术语。)

2,Managed Object Context
Managed Object Context 参与对数据对象进行各种操作的全过程,并监测数据对象的变化,以 供对 undo/redo 的支持及更新绑定到数据的 UI。

3,Persistent Store Coordinator
Persistent Store Coordinator 相当于数据文件管理器,处理底层的对数据文件的读取与写入。一般我们无需与它打交道。

4,Managed Object
Managed Object 数据对象,与 Managed Object Context 相关联。

CoreData的4个存储方式:

  • SQLite NSSQLiteStoreType
  • XML NSXMLStoreType
  • Binary NSBinaryStoreType
  • 内存存储 NSInMemoryStoreType

coredata结构解析

这里写图片描述

NSManagedObjectModel

这里写图片描述

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

NSEntityDescription 常用方法:

+insertNewObjectForEntityForName:inManagedObjectContext: 工厂方法,根据给定的 Entity  述,生成相应的 NSManagedObject 对象,并插入 ManagedObjectContext 中。

-managedObjectClassName 返回映射到 EntityNSManagedObject 类名

-attributesByName 以名字为 key, 返回 Entity 中对应的 Attributes

-relationshipsByName 以名字为 key, 返回 Entity 中对应的 Relationships
  • 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 之间的关系,可以是一对一,也可以

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值