• Core Data 是 iOS SDK 里的一个很强大的框架,允许程序员 以面向对象 的方式储存和管理数据 。使用 Core Data 框架,程序员可以很轻松有效 地通过面向对象的接口
Core Data 框架提供了 对象 - 关系映射 (ORM) 的功能,即能够将 OC 对象转 化成数据,保存在 SQLite3 数据库文件中,也能够将保存在数据库中的 数据还原成 OC 对象
• 在数据操作过程中,无需编写任何 SQL 语句
managed object context :是基于对象来说的负责的是对数据和对象之间的交互的。
manage object model:是对象模型,对应的是xcode中的模型文件。
persistent store coordinator:是对象和实体之间的转换协调起,用于管理不同存储对象的上下文关系
persistent object store :就是持久化对象的数据库
如果还不懂那么看下面这张图
最底层的就是PersistentObjectStore,也就是我们实际存储数据的结构;
图中的模型就是ManagedObjectModel,就是数据转化为对象的模型;
以SQLite数据库为例:
- 读取数据库的数据时,数据库数据先进入数据解析器,根据对应的模板,生成对应的关联对象。
- 向数据库插入数据时,对象管理器先根据实体描述创建一个空对象,对该对象进行初始化,然后经过数据解析器,根据对应的模板,转化为数据库的数据,插入数据库中。
- 更新数据库数据时,对象管理器需要先读取数据库的数据,拿到相互关联的对象,对该对象进行修改,修改的数据通过数据解析器,转化为数据库的更新数据,对数据库更新。
这些还是要在使用中进行加深理解
推荐你们如果工作中使用到core data 的话推荐一个第三方库给你们交magical recad;
如果查找一条数据的话,我们数据库会首先进入数据解析器里面(persistent store coordinator )根据一定的数据模型来来生成对应的关联对象
再比如插入一条数据的时候,对象管理器(mangedobject context)会先根据实体描绘一个空的对象,然后经过(persistent store coordinator )根据对应的model 转化为数据库中的数据插入到数据库中