
Core Data框架支持创建一些模型对象,用于将妳的应用程序数据和逻辑封装到 模型视图控制器 设计模式中。
Core Data拥有以下特性:
•.对于基本的文字编辑功能,拥有内置的撤销及重做管理
•.自动进行属性值的验证,确保单个值是处于可接受的范围内,并且各个值之间的组合是有意义的
•.对变更事件的传播,包括维持不同对象之间关系的一致性
•.对于内存和用户界面上的数据进行分组、过滤和组织
•.自动支持将对象储存到外部数据仓库中
Core Data并不是一个入门级的技术。它利用了可可(Cocoa)中的狠多其它的技术和设计模式。妳必须先理解这些技术和设计模式,才能做到有效地使用Core Data:
•. 可可基础
Objective-C、内存管理、通知和代表(delegation)。
•.数据建模和模型视图控制器设计模式
Core Data 使用的术语是在 Objective-C编程中概念 的 可可 基础指南章节的“对象建模”中定义及解释的。妳还应当确保自己理解了模型视图控制器这个设计模式,以及该文档中说明的其它相关设计模式。在Core Data 本身的开发过程中,使用的狠多灵感和设计模式都来自于数据库设计过程中的关系模型—所以对这个主题做一些基本了解是非常有用的(比如,参考维基百科(关系模型))。
•.键-值技术
Core Data 所提供的持久化存储手段,有一种是基于SQLite 的。如果妳准备使用这种存储手段,则最少对结构化查询语言(SQL)有一些基本的了解(这狠有用,当然并不是必须的)。在SQLite项目网站上有 SQLite 的文档。有好多资源都是描述结构化查询语言的,例如维基百科( 结构化查询语言 )。
Core Data编程指南 主要是起到参考作用的。妳不应当仅仅依靠通读那个文档来实现对 Core Data 的理解。
要学习Core Data,妳应当按照这个路线来做:
1.如果妳是一名OSX 开发者,则先阅读Core Data基础中的概述( Core Data编程指南 )。
2.如果妳是一名iOS 开发者,则跟着iOS的Core Data教程来学习。
如果妳是一句OSX 开发者,那么,阅读iOS的Core Data教程(可在iOS 开发者图书馆 找到)里的介绍中的概述也会有好处。
3.学习Core Data工具教程。
这会让妳进一步了解此框架中的不同组件,并且不受用户界面的干扰。
当妳在特定领域遇到问题时,参考 Core Data编程指南 。
OSX: Core Data和 可可 绑定: 可可绑定是一项OSX 技术,妳可以用它来轻易地使用户界面元素与它们所显示的数据的值保持同步。要想了解更多关于可可绑定的信息,参考 可可 绑定编程指南—尤其是什么是 可可 绑定?。可可绑定与Core Data 是正交关系—Core Data用于管理一张模型对象之间的对象图,而可可绑定用于将一张对象图中的值与一个用户界面中的元素同步起来。两者都不依赖对方。
尽管可可绑定与Core Data是互相独立的,用于解决不同的问题,但是,两者都提供了抽象层—在单独使用时狠直观狠容易—但是要同时使用的话就狠有挑战性咯。妳应当先学习其中一个,再学习另一个。
在某些孤立的场景中,Core Data 和(可可)绑定会互相影响,而这一点是可以从它们各自的应用编程接口(APIs)推断出来的(例如,控制器会拥有到一个被管理对象上下文的绑定,而同时又拥有一个实体名字的属性)。当妳在开发中遇到问题时,应当首先调查一下这方面的整合问题(参考 Core Data 编程指南 中的Core Data与 可可 绑定以了解更多信息)。
当妳学完了那些介绍性的文档之后,就可以尝试着创建一些更复杂的程序(例如,使用两个相关的实体)了。当妳继续探索时,会发现 Core Data编程指南 和 断言( Predicate )编程指南 越来越有用。当妳编写更多代码时, Core Data代码片断 应该也能帮到妳。
当妳继续学习时,有一点要注意,Core Data对象只是对象而已,作为Core Data 对象,它们不会对妳的程序中的用户界面部分产生任何影响。(事实上,反方向的影响却是存在的—妳的用户界面可能会影响到妳组织自己的数据的方式。) 妳应当练习使用传统的可可技巧(例如目标 -动作 (target-action)和代表(delegation))来创建Core Data 应用程序,就像妳在那些不使用 Core Data 的应用程序中一样。
还有一些其它的文档,它们在关于Core Data 的特定方面讲得比编程指南(Programming Guide)要深入。只有在妳已经完整地了解了Core Data 的工作原理,并且确实需要进一步学习时才有必要阅读这些文档:
阅读这篇文档,以学习如何支持版本控制。
阅读这些文档,以学习如何创建妳自己的持久化存储类型。
李冰冰
章子怡
HxLauncher: Launch Android applications by voice commands