ICF 12章 Core Data 简介

Core Data 有点复杂,明明一个数据库,被苹果整的这么复杂。结果了还是看翻译的书才明白,太多新的概念需要消化。

《iOS 组件与框架》

Core Data 提供了直接使用 SQLite 的大部分大部分灵活性,同时无需关心关系数据库使用机制。

  • 托管对象(Managed object)是 NSManagedObject 实例,应用主要与之交互。可视为字典。包含一组键值对。托管对象之间可以建立关系。

  • 托管对象是在托管对象模型(NSManagedObjectModel)中定义的。托管对象模型包含一系列实体、实体的特性、特性和实体的有效性约束以及实体之间的关系。通常在 Xcode 中可视化模型编辑器创建的。

  • 托管对象只能存在于托管对象上下文中(NSManagedObjectContext),即 Core Data 的工作区。托管对象只能在托管对象上下文中创建或获取。

  • Core Data 需要指定托管对象对应的实体,可使用 NSEntityDescription

  • 对象的检索:直接使用 objectID;编写检索请求

  • 检索请求可包含:排序描述符(NSSortDescriptor)、谓词(NSPredicate)、返回聚合函数(如 sum 和 count)的结果。

  • 检索结果控制器(fetched results controller)可以讲检索请求与 UITableView 关联起来。使用委托方法可以更新表视图。

  • Core Data 环境

    Core Data stack