COREDATA应用开发实践指南机械工业pdf下载pdf下载

COREDATA应用开发实践指南机械工业百度网盘pdf下载

作者:
简介:本篇主要提供COREDATA应用开发实践指南机械工业pdf下载
出版社:鸿扬千页图书专营店
出版时间:2014-12
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

  • 商品名:正版新书 CORE DATA应用开发实践指南9787111482260机械工业
  • ISBN:9787111482260
  • 定价:79
  • 出版社:机械工业出版社
  • 作者:[美]Tim Roadley

参考信息(以实物为准)

  • 出版时间:2014-12-01
  • 印刷时间:2014-12-01
  • 版次:1
  • 印次:1
  • 包装:平装
  • 开本:16开
  • 用纸:胶版纸
  • 页数:449
  • 字数:

编辑推荐

  

  深度剖析Core Data应用开发的全过程,全面涵盖苹果开发平台的新特性以及一些新的编程范式
  以“Grocery Dude购物管理程序”贯穿始终,循序渐进讲解Core Data的各项知识点,包含大量实用开发技巧
  

内容简介

  这是一本全面涵盖苹果开发平台新特性的Core Data教程,其中讲到了Apple对iCloud所做的重大改进。本书按步骤讲解程序开发的全过程,引领读者使用Storyboard、ARC(自动引用计数)和Xcode 创建出一款由数据所驱动的iOS 应用程序。
  书中介绍了一些新的编程范式及开发技巧,使读者可以克服Core Data开发中的各种困难。开发过程分为很多小的步骤,在学习这些步骤的过程中,你将不断丰富自己的编程技能,而且还能掌握一些高阶技巧,例如复杂模型的迁移、深拷贝、后台处理,以及同Dropbox、StackMob、iCloud的集成等。
  《Core Data应用开发实践指南》每一章都提供了网址,读者可以从中下载与该章进度相对应的范例项目,以便准确地了解项目在每个阶段的状况,另外,你也可以把这种按步骤实现出来的代码运用到自己的项目中。每章后面都有一些习题,无论你是自学者,还是参加iOS开发课程的学生,都可以通过这些题目来进一步探索Core Data领域。
  《Core Data应用开发实践指南》提供了许多技巧、工具、代码和编程范式,如果你是一位有经验的iOS开发者,那么可以利用这些内容,轻而易举地为任意一款应用程序迅速添加强大的数据管理功能。
  通过阅读《Core Data应用开发实践指南》,你将学到:
  ■ 理解Core Data的概念
  ■ 为既有项目添加Core Data支持
  ■ 设计数据模型、升级数据模型、迁移数据模型(包括自动迁移和能够显示出迁移进度的手动迁移)
  ■ 用数据来填充表格视图、选取器视图等视图界面
  ■ 预先把一些默认数据放在XML格式的持久化存储区里,然后在程序运行时将其加载进来
  ■ 通过深拷贝的方式,把一个持久化存储区中的数据复制到另一个里面
  ■ 以大尺寸照片为例,演示如何通过Instruments等工具来优化程序性能
  ■ 以缩略图的生成为例,演示如何实现后台处理
  ■ 实现高效的搜索功能
  ■ 与Dropbox相结合,实现流畅的数据备份及数据恢复功能
  ■ 与iCloud稳固地集成起来,以便完全支持多帐号登录、数据散播和去除重复数据等功能
  ■ 以StackMob为例,演示如何把Core Data程序同Web服务相集成

前言序言

  在开发iOS应用程序的时候,经常需要考虑怎样管理数据,而Core Data正是一种易于使用的数据管理框架。若想系统地掌握Core Data的用法,那不妨花点时间看看这本书。与讲解Core Data的其他教材相比,本书有几个特点值得关注。
  首先,它用Grocery Dude购物管理程序来贯穿Core Data的各项知识点,使读者能够以直观流畅的方式学会多种实用技巧,并且可以把在范例项目里学到的经验运用于自己的项目中。其次,它将全过程分解为很多章节,再将这些章节细分为若干步骤。这种循序渐进的讲解形式,令读者能够及时检视自己的学习进度,而且还能够清楚地了解每个知识点对于项目功能所起的作用。你只需把这些步骤稍加改编,即可将其推广到其他项目。□后,每章后面都有数道习题,这些习题不仅有助于培养读者的试验能力,而且还能够为深入研究Core Data提供一些线索。
  本书内容可以分成三部分。前7章可以视为基础篇。一开始我们就会知道Core Data的适用场合,并且学会怎样为现有程序添加Core Data支持。其后,本书作者从基础知识、迁移方式及扩展方式这三个角度来讲解Core Data的托管对象模型。学会它的用法之后,作者将向大家演示怎样用图形界面来操作Core Data数据,具体来说,就是怎样用表格视图、视图及选取器视图这三种界面,打造一款简单而易用的Core Data程序。对于想要迅速学会Core Data的程序员来说,看完这7章之后,应该就能初步做出一款得体的Core Data程序了。
  第8~12章可以看作进阶篇,作者深入讲解了如何为程序配备默认数据、如何更加精细地控制数据迁移、如何实现高效率的数据搜索等主题。其中,□□0章尤为精彩,作者给程序添加了拍照功能,并以此为例,演示怎样寻找程序的性能瓶颈、怎样用各种工具来分析造成瓶颈的原因,以及怎样解决性能瓶颈。这种处理问题的思路,对于我们制作其他软件产品也是很有启发的。
  □后4章应该算是扩展篇,通过与各种网络框架相集成,我们能够优雅地实现数据备份、数据恢复、多台设备间的数据同步以及多人协作等功能,从而进一步提高Core Data应用程序的品质。虽说作者是以Dropbox、iCloud及StackMob为例来讲解的,但大家也可以用类似的方式把Core Data程序与其他的云端硬盘或网络服务集成起来。
  在翻译过程中,我得到了机械工业出版社华章公司诸位编辑与工作人员的帮助,在此深表谢意,还要感谢goldlion及ChenGe两位友人对术语翻译工作所提的建议。
  由于时间仓促,译者水平有限,错误与疏漏之处在所难免,敬请各位读者批评指正。你可发邮件至与我联系,也可访问网页留言。如果对某些术语的翻译有意见或建议,欢迎来一起讨论。
  爱飞翔
  每天都有无数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之间的集成在速度、可靠性及简洁程度上都有了大幅改观。对原来放弃了这项技术的人,笔者建议你再试一次,这回肯定能给你带来惊喜。
  如果你想对本书内容提供反馈、bug修复及勘误,或想为本书后续版本出力,请通过电子邮箱联系笔者。□后,感谢你关注此书。笔者花了大量时间来精心编排内容,也衷心希望它能帮助你掌握Core Data这项出色的技术。
  本书的目标读者
  本书写给那些想在iOS app中高效管理数据的Objective-C程序员。如果原来有数据库方面的经验,那么某些内容学起来可能会快一些,但没有数据库经验的程序员也同样可以阅读本书。某些固守旧习的SQL程序员可能很难适应Core Data的一些用法。但无论你的技术背景是什么,都无需担心,因为笔者会把每个步骤都解释得非常清楚。
  学习本书所需的材料和知识
  身为Objective-C程序员,你应该装有比较新的Mac系统,并运行Xcode 5或更新的版本。同时还应该非常熟悉Xcode并且拥有一部iOS设备,以便测试。iOS设备对本书□□0章尤其重要,因为整章都在谈设备性能问题。
  你应该知道Objective-C中一些术语的含义,例如property(特性)、method(方法)、delegate(代理)、class(类)和class instance(类实例)。若你无法确定本书是否适合自己,建议你先看看下面这些资料:
  《iOS Programming: The Big Nerd Ranch Guide》  (请搜索□□□□□□.com网站)
  《The iOS Newbie Tutorial Series》(请搜索timroadley.com网站)
  《Learning Objective-C: A Primer》 (请搜索apple.com网站)
  本书结构
  本书将指导你完成Grocery Dude与Grocery Cloud的整个构建过程,二者均是在App Store上架的应用程序。Grocery Dude演示了Core Data如何与iCound集成,而Grocery Cloud则演示了Core Data如何与StackMob集成。本书的每一章都要用到上一章所讲的知识,而按照各章顺序也会看到所需实现的内容。在这个过程中,我们要构建一些辅助类(helper class),以便更快地重新部署已经完成的这部分应用程序。实际上,□□5章□后的那个习题就会引导你把这些辅助类重新部署到既有的非Core Data应用程序上面。你很快就能拥有一款功能完备的Core Data app了,它会与iCound可靠地集成起来。
  现将每章内容简述如下:
  □□章 初次尝试Core Data应用程序—此章是本书的基础,笔者会在其中介绍Core Data的基本概念,还会告诉你关于Core Data的两个重要方面,就是“它能做什么”以及“它不能做什么”。此外,还会实现CoreDataHelper类,用以演示如何将Core Data同既有的应用程序相集成。
  第2章 托管对象模型的基础知识—这一章将对比传统数据库模式的设计与Core Data之间有何共性,并介绍数据模型。在讨论实体(entity)和属性的时候,你将看到如何配置基本的托管对象模型(managed object model),同时笔者还会给出建议,告诉你如何选择合适的数据类型。此外还会讲解怎样插入、获取、过滤、排序及删除“托管对象”,其后还会介绍获取请求(fetch request)模板。
  第3章 托管对象模型的迁移—本章将会讲解三种迁移方式,分别是:轻量级迁移、默认迁移以及采用迁移管理器来迁移,其中,迁移管理器可以显示迁移的进度。你将学到如何在各种迁移方式之间做出明智的抉择,同时还将学会适应Core Data的模型版本管理(model-versioning)功能。
  第4章 托管对象模型的扩展—笔者会解释各种关系并将其添加到Grocery Dude程序中,此时关系数据模型的强大之处就能体现出来了。模型的其他特性,诸如抽象实体及父实体也会在这一章里讲到,同时笔者还会告诉你一些处理数据验证错误的技术。
  第5章 表格视图—用Core Data及获取结果(fetched result)控制器来驱动表格视图(table view),既可节省内存,又能提升效率,而且这么做也会令应用程序初具规模。当然,大部分的例行任务都是由CoreDataTVC来完成的,这是个可以复用的子类,继承自UITableViewController。只需把这个子类放到你自己的应用程序里,就能轻松地部署好一份由Core Data所驱动的表格视图了。
  第6章 视图—本章将展示怎样在应用程序里传递托管对象,由此可以学会如何操作它们。在表格视图里选定的对象可以传给下一个视图,以供编辑。本章会给Grocery Dude加上编辑用的界面,以演示如何操作传过来的对象,并且还会演示如何将其存回持久化存储区里面。
  第7章 选取器视图—本章会把由Core Data所驱动的选取器视图(Picker View)添加到编辑视图里面,这样可以令应用程序更加精致。用户可以通过选取器视图将某种计量单位、家庭住址或商铺地址快速地设定到现有的货品上面。笔者专门制作了一个可以复用的子类—CoreDataPickerTF,它继承自UITextField,当用户点击相关的文本框时,这个子类可以用由Core Data所驱动的选取器视图来取代默认的输入键盘。
  第8章 预先加载数据—本章将会解释如何用XML中的默认数据来生成持久化存储区,同时还会介绍通用的辅助类CoreDataImporter。为Grocery Dude程序准备好持久化存储区之后,笔者将演示如何判断是否需要导入默认数据(有时用户可能根本不想导入数据)。
  第9章 深拷贝—与migratePersistentStore相比,深拷贝(deep copy)更加灵活也更加精细,它可以从选定的实体中把对象与关系由一个持久化存储区拷贝到另一个存储区中。本章将改进CoreDataImporter这个辅助类,为其增加深拷贝功能。
  □□0章 性能—编写Core Data应用程序的时候,很容易出现一些常见的性能问题,你将会通过本章学到如何用Instruments来判断并解决这些问题,并可以由此积累经验。笔者给程序加入照相功能,是为了把性能问题凸现出来,从而使大家明白:要想编出性能优秀的应用程序,就必须把模型设计好。
  □□1章 后台处理—性能□□的程序会把繁重的处理任务转交给后台线程来做。笔者将通过名为Thumbnailer的辅助类来添加相片缩略图生成功能,由此你会看到在后台处理任务其实是非常简单的。
  □□2章 搜索—本章将会在CoreDataTVC里实现高效的搜索功能,你将学到如何在同一个表格视图中处理两个获取结果控制器。
  □□3章 与Dropbox相结合的备份与恢复—本章将会讲解如何创建备份文件以及如何用Dropbox的Sync API来同步这些文件。我们还会实现数据恢复功能:用户只需按一下按钮,就能把同一个Dropbox账户中的数据恢复到任意iOS设备中。
  □□4章 iCloud—本章将会讲解Core Data与iCloud的集成,这种集成方式目前是□简单、□可靠的。iCloud可以安全地处理多个账户及各种配置信息,不会有丝毫损失。
  □□5章 iCloud高级使用技巧—本章将会进一步提升Core Data与iCloud的集成幅度,以实现实体级别的数据散播(entity-level seeding)及去除重复数据(de-duplication)的功能(该功能可以保证每个对象只存储一份)。此外,你还会学到如何通过正确的方式来准确地模拟用户□□次使用iCloud时的情形,这种方式可以把相关的内容全部重置。
  □□6章 与Web Service相集成—本章通过StackMob来介绍如何在多个用户之间进行跨平台的数据分享及协作。    StackMob是个极为优秀的免费BaaS(Backend-as-a-Service的缩写),它直接提供了针对Core Data的iOS API。    StackMob允许笔者在书中使用其美术资源,并且对本书□□6章有所帮助,笔者在此对StackMob表示感谢。
  附录A 为□□章的Grocery Dude程序所做的准备工作—本书□□章要以Grocery Dude程序为起点展开讲解,为了更完整地演示此程序的制作过程,笔者把程序里面与Core Data无关的步骤都放在了这个附录中。
  附录B 为□□6章的Grocery Cloud程序所做的准备工作—本书□□6章要以Grocery Cloud程序为起点展开讲解,为了更完整地演示此程序的制作过程,笔者把程序里面与Core Data无关的步骤都放在了这个附录中。
  范例代码获取方式
  本书范例代码均可从timroadley.com网站下载。每一章都会给出相关的链接,也可以参考表1,该表按照实现的先后顺序列出了各范例代码的下载链接。
  表1 Grocery Dude代码下载链接汇总
  请注意,有时候一行代码会比较长,从而超出了书的宽度。在这种情况下,笔者用“代码接续箭头”()来表示换行。例如:
  致谢
  首先感谢Trina MacDonald给了我写作本书的机会,她在成书过程中亦对笔者提供了莫大的帮助,而Rich Warren、Carl Brown、Mark Granoff及Ricky O扴ullivan这四位技术评审也做得相当出色。笔者熬夜写书时肯定出了一些差错,你们都帮着找了出来,并提供了一些独到的见解和代码编写技巧。此外还要特别感谢Betsy Gratner、Olivia Basegio、Bart Reed、Sheri Cain、Chris Zahn及Matt Vaznaian在成书过程中对笔者的协助。
  —Tim Roadley(Twitter用户名:@TimRoadley)

目录

译者序
前 言
□□章初次尝试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
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 习题

第6章视图
6.1 概述
6.2 范例程序所需的视图层级
6.3 创建ItemVC
6.4 DELEGATE: UITextField
6.5 货品的计量单位、在家中的位置以及在商店中的位置
6.6 小结
6.7 习题


第7章选取器视图
7.1 概述
7.2 创建CoreDataPickerTF
7.3 DELEGATE+DATASOURCE:UIPickerView
7.4 创建UnitPickerTF
7.5 创建LocationAtHomePickerTF
7.6 创建LocationAtShopPickerTF
7.7 使选取器不遮住文本框
7.8 小结
7.9 习题


第8章预先加载数据
8.1 默认的数据
8.2 判断应用程序是否需要导入数据
8.3 从XML中导入数据
8.4 创建导入默认数据所需的上下文
8.5 防止重复导入默认数据
8.6 触发导入默认数据的操作
8.7 创建CoreDataImporter
8.8 选定各实体的Unique 属性
8.9 把XML中的数据映射到实体的属性
8.10 从持久化存储区中导入数据
8.11 小结
8.12 习题


第9章深拷贝
9.1 概述
9.2 配置拷贝源数据所用的Core Data栈
9.3 增强CoreDataImporter类
9.4 触发深拷贝
9.5 小结
9.6 习题


□□0章性能
10.1 发现性能问题
10.2 实现拍照功能
10.3 生成测试数据
10.4 用SQLDebug测量性能
10.5 用Instruments测量性能
10.6 改善程序性能
10.7 清理
10.8 小结
10.9 习题


□□1章后台处理
11.1 后台保存
11.2 后台处理
11.3 建立Faulter类
11.4 建立Thumbnailer类
11.5 小结
11.6 习题


□□2章搜索
12.1 修改CoreDataTVC类
12.2 修改PrepareTVC类
12.3 小结
12.4 习题


□□3章与Dropbox相结合的备份与恢复
13.1 与Dropbox相集成
13.2 在CoreDataHelper类中准备相关代码
13.3 构建DropboxHelper类
13.4 构建DropboxTVC类
13.5 小结
13.6 习题


□□4章 iCloud
14.1 概述
14.2 启用iCloud
14.3 为CoreDataHelper类添加iCloud功能
14.4 Debug Navigator
14.5 禁用iCloud
14.6 小结
14.7 习题


□□5章 iCloud高级使用技巧
15.1 去除重复数据
15.2 散播数据
15.3 打造干净的开发环境
15.4 Core Data程序的配置
15.5 收尾工作
15.6 小结
15.7 习题


□□6章与Web服务相集成
16.1 StackMob简介
16.2 StackMob SDK
16.3 创建StackMob应用程序
16.4 准备托管对象模型
16.5 配置StackMob客户端
16.6 SAVING
16.7 响应底层数据的变更
16.8 自动生成Schema
16.9 Schema的权限
16.10 认证
16.11 使程序保持响应
16.12 小结
16.13 习题
附录A 为□□章的Grocery Dude程序所做的准备工作
附录B 为□□6章的Grocery Cloud程序所做的准备工作

作者简介

  Tim Roadley ,Emite Pty Ltd的资深分析软件顾问。他主要致力于研发商业智能控制面板,目前正在为澳大利亚一家大银行制作该产品。在到Emite公司供职之前,曾在Cuscal Pty Ltd任基础设施经理一职,并积极参与payments switch的设计与实现工作,全澳大利亚有1300多台ATM都是由这种payments switch驱动的。在夜间,他是一位活跃的iOS开发者与教程编写者,他制作的多个应用程序都在App Store上架,包括Teamwork、iSoccer以及□近出品的Grocery Dude及Grocery Cloud。闲暇时,他与妻子Tracey及两个可爱的孩子Tyler与Taliah一起,享受着愉快的家庭生活。
  译者简介
  爱飞翔 资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。业余爱好文学和历史,有一定的文学造诣。翻译并出版了《Android游戏开发实践指南》、《测试驱动的iOS开发》、《HTML5 Canvas核心技术:图形、动画与游戏开发》、《NoSQL精粹》和《应用开发实践指南》等书。