深入理解深入理解CoreData
Core Data 是什么?
大概八年前,2005年的四月份,Apple 发布了 OS X 10.4,正是在这个版本中 Core Data 框架发布了。那个时候
YouTube 也刚发布。
Core Data 是一个模型层的技术。Core Data 帮助你建立代表程序状态的模型层。Core Data 也是一种持久化技术,它
能将模型对象的状态持久化到磁盘,但它最重要的特点是:Core Data 不仅是一个加载、保存数据的框架,它还能和
内存中的数据很好的共事。
如果你之前曾经接触过 Object-relational maping (O/RM):Core Data不是一个 O/RM,但它比 O/RM 能做的更多。如
果你之前曾经接触过 SQL wrappers:Core Data 不是一个 SQL wrapper。它默认使用 SQL,但是,它是一种更高级
的抽象概念。如果你需要的是一个 O/RM 或者 SQL wrapper,那么 Core Data 并不适合你。
对象图管理(object graph management)是 Core Data 最强大的功能之一。为了更好利用 Core Data,这是你需要理
解的一块内容。
还有一点要注意:Core Data 是完全独立于任何 UI 层级的框架。它是作为模型层框架被设计出来的。在 OS X 中,甚
至在一些后台驻留程序中,Core Data 都起着非常重要的意义。
堆栈
Core Data 有相当多可用的组件。这是一个非常灵活的技术。在大多数的使用情况下,设置都相当简单。
当所有的组件都捆绑到一起的时候,我们把它称作 Core Data 堆栈,这个堆栈有两个主要部分。一部分是关于对象图
管理,这正是你需要很好掌握的那一部分,并且知道怎么使用。第二部分是关于持久化,比如,保存你模型对象的状
态,然后再恢复模型对象的状态。
在两个部分之间,即堆栈中间,是持久化存储协调器(persistent store coordinator),也被称为中间审查者。它将对
象图管理部分和持久化部分捆绑在一起,当它们两者中的任何一部分需要和另一部分交流时,这便需要持久化存储协
调器来调节了。