具体描述
本书是第一本关于核心数据的图书,全面反映了苹果平台的最新创新,特别是它对iCloud的支持。
本书将循序渐进地介绍如何利用故事板、ARC、iOS7和Xcode5创建现代的数据驱动的iOS应用。
本书每一章都提供了网址,读者可以从中下载与该章进度相对应的范例项目,以便准确地了解项目在每个阶段的状况,另外,您也可以把这种按步骤实现出来的代码运用到自己的项目中。
每章后面都有一些习题,无论是您是自学者,还是参加iOS开发课程的学生,都可以通过这些题目来进一步探索CoreData领域。
作者简介
Tim Roadley是Emite Pty Ltd的资深分析软件顾问。
目录信息
译者序
前 言
第1章初次尝试Core Data应用程序1
1.1 Core Data是什么1
1.2 Core Data的适用场合4
1.3 创建Grocery Dude项目5
1.4 为现有的应用程序添加Core Data支持6
1.5 小结15
1.6 习题15
第2章托管对象模型的基础知识17
2.1 托管对象模型是什么17
2.2 添加托管对象模型18
2.3 实体18
2.4 属性20
2.5 Integer 16、Integer 32与Integer 6421
2.6 单精度浮点数与双精度浮点数22
2.7 属性的各种设置选项25
2.8 创建NSManagedObject的子类27
2.9 Scalar Properties for Primitive Data Types选项28
2.10 代码片段:demo方法29
2.11 创建托管对象29
2.12 后端SQL的可见性31
2.13 获取托管对象34
2.14 删除托管对象39
2.15 小结40
2.16 习题40
第3章托管对象模型的迁移42
3.1 修改托管对象模型42
3.2 添加模型版本43
3.3 轻量级的迁移方式45
3.4 默认的迁移方式48
3.5 通过迁移管理器来迁移数据52
3.6 小结62
3.7 习题63
第4章托管对象模型的扩展64
4.1 关系64
4.2 Delete规则69
4.3 数据验证错误73
4.4 实体继承77
4.5 小结81
4.6 习题81
第5章表格视图82
5.1 表格视图基础82
5.2 由Core Data所驱动的表格视图83
5.3 创建CoreDataTVC84
5.4 DELEGATE:NSFetchedResultsController88
5.5 AppDelegate的CoreDataHelper实例93
5.6 创建PrepareTVC94
5.7 创建ShopTVC105
5.8 小结110
5.9 习题110
第6章视图111
6.1 概述111
6.2 范例程序所需的视图层级112
6.3 创建ItemVC113
6.4 DELEGATE: UITextField 121
6.5 货品的计量单位、在家中的位置以及在商店中的位置127
6.6 小结141
6.7 习题141
第7章选取器视图143
7.1 概述143
7.2 创建CoreDataPickerTF144
7.3 DELEGATE+DATASOURCE:UIPickerView146
7.4 创建UnitPickerTF151
7.5 创建LocationAtHomePickerTF158
7.6 创建LocationAtShopPickerTF160
7.7 使选取器不遮住文本框167
7.8 小结170
7.9 习题170
第8章预先加载数据171
8.1 默认的数据171
8.2 判断应用程序是否需要导入数据172
8.3 从XML中导入数据174
8.4 创建导入默认数据所需的上下文177
8.5 防止重复导入默认数据178
8.6 触发导入默认数据的操作178
8.7 创建CoreDataImporter180
8.8 选定各实体的Unique 属性185
8.9 把XML中的数据映射到实体的属性186
8.10 从持久化存储区中导入数据189
8.11 小结192
8.12 习题193
第9章深拷贝194
9.1 概述194
9.2 配置拷贝源数据所用的Core Data栈197
9.3 增强CoreDataImporter类200
9.4 触发深拷贝210
9.5 小结214
9.6 习题214
第10章性能216
10.1 发现性能问题216
10.2 实现拍照功能217
10.3 生成测试数据222
10.4 用SQLDebug测量性能225
10.5 用Instruments测量性能227
10.6 改善程序性能229
10.7 清理237
10.8 小结237
10.9 习题237
第11章后台处理239
11.1 后台保存239
11.2 后台处理244
11.3 建立Faulter类245
11.4 建立Thumbnailer类249
11.5 小结254
11.6 习题254
第12章搜索256
12.1 修改CoreDataTVC类257
12.2 修改PrepareTVC类264
12.3 小结268
12.4 习题268
第13章与Dropbox相结合的备份与恢复270
13.1 与Dropbox相集成271
13.2 在CoreDataHelper类中准备相关代码279
13.3 构建DropboxHelper类280
13.4 构建DropboxTVC类287
13.5 小结297
13.6 习题298
第14章 iCloud300
14.1 概述300
14.2 启用iCloud302
14.3 为CoreDataHelper类添加iCloud功能303
14.4 Debug Navigator310
14.5 禁用iCloud310
14.6 小结316
14.7 习题316
第15章 iCloud高级使用技巧318
15.1 去除重复数据318
15.2 散播数据327
15.3 打造干净的开发环境333
15.4 Core Data程序的配置335
15.5 收尾工作336
15.6 小结337
15.7 习题337
第16章与Web服务相集成343
16.1 StackMob简介343
16.2 StackMob SDK345
16.3 创建StackMob应用程序346
16.4 准备托管对象模型347
16.5 配置StackMob客户端349
16.6 SAVING 351
16.7 响应底层数据的变更353
16.8 自动生成Schema354
16.9 Schema的权限356
16.10 认证358
16.11 使程序保持响应369
16.12 小结370
16.13 习题371
附录A 为第1章的Grocery Dude程序所做的准备工作372
附录B 为第16章的Grocery Cloud程序所做的准备工作377
· · · · · · (收起)
读后感
用户评价
从软件工程的角度来看,这本书提供的架构思维远超出了Core Data本身的技术范畴。它不仅仅是关于如何使用一个框架,更关乎如何构建一个健壮、可维护的数据层。作者花了大量篇幅讨论如何设计清晰的数据模型层,如何有效地进行版本迁移,以及如何隔离业务逻辑和数据访问逻辑。这种“高屋建瓴”的视角,对于正在负责中大型项目的工程师来说,价值无可估量。我特别欣赏书中关于测试驱动开发(TDD)在Core Data上下文中的应用讨论,这在其他同类书籍中几乎是闻所未闻的。它促使我反思自己过去在构建应用时,是否过于关注功能实现而忽略了长期维护的成本。这本书提供了一套系统的、可落地的工程化方法论,帮助我们从“能跑起来”的初级阶段,迈向“稳定、高效运行”的专业水准。
这本书的排版和装帧设计简直是一场视觉盛宴。从封面那低调却又不失质感的深蓝色调,到内页使用的纸张选择,无不透露出一种对阅读体验的极致追求。字体的大小和行距经过精心调整,即便是长时间阅读也不会感到眼睛疲劳,这对于像我这种经常需要深陷代码和技术文档的开发者来说,简直是福音。更令人称赞的是,作者在关键代码段落的处理上非常用心,使用了醒目的高亮和注释,让那些复杂的框架结构瞬间变得清晰易懂。很多技术书籍在排版上往往粗糙敷衍,但《Core Data应用开发实践指南》却像一本精心雕琢的艺术品,让人爱不释手。它不仅仅是一本工具书,更像是某种对技术美学的诠释,让人在学习知识的同时,也能享受到阅读的愉悦。这种对细节的关注,无疑提升了整本书的价值感,让人愿意花更多时间去品味其中的每一个章节。
我必须承认,我原本对这种“实践指南”类的书籍抱有极大的怀疑态度。通常,这类书充斥着过时的API引用和教科书式的理论堆砌,真正能落地解决实际问题的案例少之又少。然而,这本书彻底颠覆了我的认知。作者似乎深谙现代移动开发中的那些“灰色地带”和“陷阱”,并在书中以一种近乎自白的方式一一揭示。例如,它没有停留在Core Data的基本CRUD操作上,而是深入探讨了在新版本iOS系统中,如何高效地处理大规模数据同步的挑战,以及如何在后台线程中安全地操作MOC(Managed Object Context)而不引发常见的死锁问题。这些内容,放眼市面上其他教材,往往是寥寥数语带过,但在本书中却成了核心章节。这种“不回避复杂性”的写作风格,让我感觉自己不是在读一本冷冰冰的技术手册,而是在听一位经验丰富的大师分享他多年踩坑得来的血泪教训。
这本书在理论阐述的深度和广度上,展现了一种罕见的平衡感。很多技术书籍要么是过于侧重理论,写得晦涩难懂,让人望而却步;要么就是完全堆砌代码示例,缺乏必要的原理支撑,导致读者知其然而不知其所以然。这本书的作者显然在这方面下足了功夫。他能将Core Data的底层实现机制,比如Persistent Store Coordinator的工作流程,用极其精妙的比喻和图示来解释,使得那些原本抽象的概念变得触手可及。这种“由浅入深、层层递进”的教学策略,极大地降低了学习曲线。我过去在理解某些高级特性时总是感到吃力,但阅读此书后,我不仅掌握了“如何做”,更重要的是理解了“为什么必须这样做”。这使得我在后续的实际项目中,能够根据不同的业务需求,灵活地调整数据持久化策略,而不是机械地复制粘贴代码。
阅读体验的流畅性,很大程度上决定了一本技术书的“生命力”,而这本书在这方面做得相当出色。作者似乎非常懂得如何引导读者的注意力,章节之间的过渡自然得如同水银泻地一般。当你刚消化完一个复杂的概念,紧接着就会出现一个与之配套的小练习或思考题,强迫你立即动手实践,从而巩固所学。此外,书中大量的图表设计,比如描述数据流向的流程图和类关系图,简直是教科书级别的范例。它们简洁明了,没有多余的装饰,直击问题的核心。我发现自己阅读这本书的速度虽然不慢,但理解的深度却远超以往。它成功地将一个通常被认为枯燥乏味的技术主题,转化成了一场引人入胜的探索之旅。这本书不是那种你读完一遍就束之高阁的参考书,而是更像一本值得反复翻阅,每次都能带来新感悟的“良师益友”。
干货占书的1/4吧,干货主要表现在Core Data的地道用法,大部分看起来像是翻译了官方文档吧,虽然这些知识网上也能找到,但是网上去找不见得一找即中那种非常正确或者完善的解;这本书,堆代码和代码解释比较多,要说非常适合iOS初学者,恐怕初学者不会涉及到Core Data,如果iOS知识掌握还不错,那其实也要不了这么详细的代码意图讲解;另外,iOS10出来后,给了一个使用Core Data的封装类(NSPersistentContainer),这本书应该出来得更早,就没有讲到了,不过看看封装类的文档,原理还是离不开本书所述内容;每章开始,有一些爱因斯坦的名言,还挺契合当章要讲解的内容,有些名言非常有意思,可用来调侃当下我们做事做人的行为~~~ 总体来说,还是比较好的书~~~可以一读
干货占书的1/4吧,干货主要表现在Core Data的地道用法,大部分看起来像是翻译了官方文档吧,虽然这些知识网上也能找到,但是网上去找不见得一找即中那种非常正确或者完善的解;这本书,堆代码和代码解释比较多,要说非常适合iOS初学者,恐怕初学者不会涉及到Core Data,如果iOS知识掌握还不错,那其实也要不了这么详细的代码意图讲解;另外,iOS10出来后,给了一个使用Core Data的封装类(NSPersistentContainer),这本书应该出来得更早,就没有讲到了,不过看看封装类的文档,原理还是离不开本书所述内容;每章开始,有一些爱因斯坦的名言,还挺契合当章要讲解的内容,有些名言非常有意思,可用来调侃当下我们做事做人的行为~~~ 总体来说,还是比较好的书~~~可以一读
干货占书的1/4吧,干货主要表现在Core Data的地道用法,大部分看起来像是翻译了官方文档吧,虽然这些知识网上也能找到,但是网上去找不见得一找即中那种非常正确或者完善的解;这本书,堆代码和代码解释比较多,要说非常适合iOS初学者,恐怕初学者不会涉及到Core Data,如果iOS知识掌握还不错,那其实也要不了这么详细的代码意图讲解;另外,iOS10出来后,给了一个使用Core Data的封装类(NSPersistentContainer),这本书应该出来得更早,就没有讲到了,不过看看封装类的文档,原理还是离不开本书所述内容;每章开始,有一些爱因斯坦的名言,还挺契合当章要讲解的内容,有些名言非常有意思,可用来调侃当下我们做事做人的行为~~~ 总体来说,还是比较好的书~~~可以一读
干货占书的1/4吧,干货主要表现在Core Data的地道用法,大部分看起来像是翻译了官方文档吧,虽然这些知识网上也能找到,但是网上去找不见得一找即中那种非常正确或者完善的解;这本书,堆代码和代码解释比较多,要说非常适合iOS初学者,恐怕初学者不会涉及到Core Data,如果iOS知识掌握还不错,那其实也要不了这么详细的代码意图讲解;另外,iOS10出来后,给了一个使用Core Data的封装类(NSPersistentContainer),这本书应该出来得更早,就没有讲到了,不过看看封装类的文档,原理还是离不开本书所述内容;每章开始,有一些爱因斯坦的名言,还挺契合当章要讲解的内容,有些名言非常有意思,可用来调侃当下我们做事做人的行为~~~ 总体来说,还是比较好的书~~~可以一读
干货占书的1/4吧,干货主要表现在Core Data的地道用法,大部分看起来像是翻译了官方文档吧,虽然这些知识网上也能找到,但是网上去找不见得一找即中那种非常正确或者完善的解;这本书,堆代码和代码解释比较多,要说非常适合iOS初学者,恐怕初学者不会涉及到Core Data,如果iOS知识掌握还不错,那其实也要不了这么详细的代码意图讲解;另外,iOS10出来后,给了一个使用Core Data的封装类(NSPersistentContainer),这本书应该出来得更早,就没有讲到了,不过看看封装类的文档,原理还是离不开本书所述内容;每章开始,有一些爱因斯坦的名言,还挺契合当章要讲解的内容,有些名言非常有意思,可用来调侃当下我们做事做人的行为~~~ 总体来说,还是比较好的书~~~可以一读