iOS数据存储之Core Data(一)
Core Data 基础
Core Data 是一个API集合,被设计用来简化数据对象的持久存储。Core Data 提供一种模型用于保存模型对象并在之后取回他们。Core Data 还管理对对象模型的改变,提供撤销支持,并确保模型对象间关系的一致性。
Core Data 架构
上图是Core Data的设计概览。其中的关键组件是数据存储(data store)、持久存储协调器(Persistent Store Coordinator)、托管对象模型(Managed Object Model)和托管对象上下文(Managed Object Context)。
1. 数据存储
数据存储是保存数据的一个或一组文件。它是当保存消息发送到Coredata 后实际写入到磁盘的文件。通常在移动应用程序中只有一个数据存储文件。
依赖于创建数据存储时使用的参数,数据存储可以是一个二进制文件、SQLITE数据库或一个内存中的数据文件。
2. 持久存储协调器
持久协调存储器在托管对象上下文和数据存储之间扮演中间人的角色。协调器从上下文中获得数据请求并将它们转发给合适的数据存储,协调器还允许上下文访问多个数据存储。协调器将数据存储和上下文关联在一起。持久存储协调器是NSPersistentCoordinator
类的实例。持久存储协调器不是线程安全的。
3. 托管对象模型
托管对象模型代表数据模型架构,是NSManagedObjectModel
类的实例。
模型由一组实体组成,他们定义了应用程序中的数据对象。数据模型通常使用XCode的提供的图形化数据建模工具创建。数据模型应该定义程序中使用的数据对象。持久协调存储器依据数据模型中定义的约定创建托管对象。
4. 托管对象上下文
托管对象上下文提供访问托管数据对象的接口,托管对象上下文是NSManagedObjectContext
类的实例。上下文用于保存所有托管对象,托管对象是NSManagedObject
类或其之类的实例。可以在上下文中添加对象、删除对象、修改对象,当准备好后,可以让上下文将当前状态提交到磁盘保存。可以在上下文中创建获取请求将数据从存储中取回到上下文,进而对数据进行处理。