前 言
每天都有无数Apple设备运行着依赖于Core Data的应用程序。这使得Core Data成了一个成熟、稳定且非常快速的平台,以供应用程序访问其数据。Core Data本身并不是数据库,它其实是一个拥有诸多功能的框架,而其中一项功能就是把应用程序同数据库之间的交互过程自动化。有了它之后,就不用再编写SQL代码了,而是可以改用Objective-C对象来做。这样一来,既能享受到关系型数据库的好处,又无须在Objective-C代码中编写、测试并优化SQL查询语句。Core Data会在幕后自动生成SQL代码,而Apple公司的专业技术人员已经对这种SQL代码做了多年的改良与优化。使用Core Data不仅能缩短应用程序开发时间,而且还能显著减少开发者所要编写的代码量。
Core Data的显著特性有:
变更管理(撤销与重做)
关系(relationship)
数据模型的版本管理及迁移
(通过batching及faulting)高效地获取数据
(通过谓词)高效地过滤数据
数据一致性及数据验证
本书将介绍Core Data的特性及最佳实践技巧。在学习各章的过程中,你会明白如何从头开始构建一款功能完备的Core Data iPhone应用程序。笔者会详细解释每个关键的知识点,使你能够直接把学到的内容付诸实践。本书所展示的范例程序会尽量把Core Data的各个方面都纳入其中。同时,它还是个已在App Store上架的真实应用程序。这更有助于你把学到的知识与现实工作中的场景联系起来。
随着iOS 7的到来,Core Data与iCound之间的集成在速度、可靠性及简洁程度上都有了大幅改观。对原来放弃了这项技术的人,笔者建议你再试一次,这回肯定能给你带来惊喜。
目 录
第1章初次尝试Core Data应用程序
1.1 Core Data是什么
1.2 Core Data的适用场合
1.3 创建Grocery Dude项目
1.4 为现有的应用程序添加Core Data支持
1.5 小结
1.6 习题
第2章托管对象模型的基础知识
2.1 托管对象模型是什么
2.2 添加托管对象模型
2.3 实体
2.4 属性
2.5 Integer 16、Integer 32与Integer 64
2.6 单精度浮点数与双精度浮点数
2.7 属性的各种设置选项
2.8 创建NSManagedObject的子类
2.9 Scalar Properties for Primitive Data Types选项
2.10 代码片段:demo方法
2.11 创建托管对象
2.12 后端SQL的可见性
2.13 获取托管对象
2.14 删除托管对象
2.15 小结
2.16 习题
第3章托管对象模型的迁移
3.1 修改托管对象模型
3.2 添加模型版本
3.3 轻量级的迁移方式
3.4 默认的迁移方式
3.5 通过迁移管理器来迁移数据
3.6 小结
3.7 习题
第4章托管对象模型的扩展
4.1 关系
4.2 Delete规则
4.3 数据验证错误
4.4 实体继承
4.5 小结
4.6 习题
第5章表格视图
5.1 表格视图基础
5.2 由Core Data所驱动的表格视图
5.3 创建CoreDataTVC
5.4 DELEGATE:NSFetchedResultsController
5.5 AppDelegate的CoreDataHelper实例
5.6 创建PrepareTVC
5.7 创建ShopTVC
5.8 小结
5.9 习题