CoreData是什么
Core Data 是苹果公司提供的一个对象-关系映射框架(Object-Relational Mapping,ORM),用于管理应用程序的数据模型。Core Data 提供了一个抽象层,使开发人员能够使用面向对象的方式访问和操作数据,而不需要直接与底层的数据库交互。Core Data 适用于管理复杂的数据模型,包括继承、关联和多对多关系。
Core Data 架构
CoreData 的架构由三个主要的部分组成:模型层、持久化层和控制层。
模型层
模型层是 CoreData 中的核心,它定义了应用程序中的数据模型。模型层由一个或多个实体组成,每个实体都代表了应用程序中的一个数据对象。实体由多个属性组成,每个属性代表了实体的一个特定数据项。
持久化层
持久化层负责将模型层中的数据保存到磁盘,并将这些数据重新加载到内存中。CoreData 支持多种持久化存储类型,包括 SQLite、XML 和二进制文件等。
控制层
控制层是 CoreData 的核心控制器,负责管理模型层和持久化层之间的交互。开发者可以使用控制器来执行各种操作,例如插入、更新、删除和查询数据等。
Core Data 主要由以下几个组件组成
- NSManagedObjectModel:用于描述数据模型的对象。数据模型由实体(Entity)、属性(Property)和关系(Relationship)等组成。NSManagedObjectModel 通过描述数据模型的方式,让 Core Data 知道如何将数据存储到底层的持久化存储中。
- NSManagedObjectContext:用于管理对象的上下文,负责对对象进行添加、删除、修改和查询等操作。NSManagedObjectContext 通常被认为是对象的容器,其中包含了对象的状态信息以及它们在持久化存储中的标识符。NSManagedObjectContext 还提供了事务支持,可以通过提交或回滚来管理对象的状态。
- NSPersistentStoreCoordinator:用于协调对象和底层的持久化存储之间的交互。NSPersistentStoreCoordinator 将 NSManagedObjectModel、NSPersistentStore 和 NSManagedObjectContext 连接