内容简介: 准备好进军精彩的Apple移动应用开发世界吧!《iOS 4编程入门经典》这本书展示了如何利用iPhone SDK 4提供的所有功能创建自己的iPhone、iPod Touch和iPad应用程序。你将从中深入学习如何使用Apple的Xcode工具、Objective-C编程语言以及众多用来增强iPhone SDK功能的API。本书十分易于阅读和上手,可帮助你迅速从构建第一个应用程序过渡到开发能够集成动画、手势识别、语音聊天等功能的复杂应用程序。 作者介绍: Wei-Meng Lee是一名技术专家,并且是Developer Learning Solutions的创始人。Developer Learning Solutions是一家技术公司,主要培训最新的Microsoft和Mac OS X技术。Wei-Meng Lee还是Wrox和O Reilly出版社的知名作者。 Wei-Meng Lee首先在新加坡开展了iPhone编程培训课程,反响良好。他在iPhone/iPad编程培训方面的务实方法使得理解这些主题比阅读Apple提供的图书、教程和文档容易得
短短6个月内,Apple两次修改iPhone OS。第一次是在2010年2月,Apple宣布了一个神奇的 革命性的产品:iPad。iPad是基于iPhone OS的平板电脑,这意味着有超过250 000个应用程序可 以直接在iPad上运行。不久以后,Apple在4月宣布(随后在6月正式发布)了iPhone OS的下一个主 版本——4.0。Apple还利用这个机会把新版本重命名为iOS。这体现了Apple要在众多设备(不仅 仅是手机)上运行iPhone OS的雄心。新版OS中包含一个新的SDK,即iPhone SDK 4,它能够帮助 开发人员利用操作系统提供的各种功能,其中最关键的是运行后台应用程序的能力。 在开始学习iPhone和iPad开发时,我与大多数iPhone开发人员所走的路是一样的:编写 Hello World应用程序、学习Interface Builder、理解代码的行为并重复这个过程。我还被视图控 制器的概念迷惑了,想知道如果只希望显示一个视图的话,为什么还需要视图控制器。我关于 Windows Mobile与Android的开发背景也没帮上多少忙,只能从头开始学习这个概念。 本书面向iPhone和iPad开发初学者,涵盖了iPhone开发的各个主题。本书的编写方式是渐进 式的,这样读者就不会拘泥于细节。我认为最好的学习方式就是去实践,因此全书大量的“试 一试”首先会介绍如何构建某个应用,然后解释原理。 虽然iPhone和iPad编程是个庞大的主题,但本书的目标在于让读者掌握基本原理、理解SDK 底层的架构,知道为什么要这么做。面面俱到地介绍iPhone和iPad编程已经超出了本书的范围, 但我还是相信读者在学习完本书(并做完练习)后能够迎接接下来的iPhone和iPad编程挑战。 本书读者对象 本书面向希望使用Apple iPhone SDK进行iPhone和iPad应用程序开发的初学者。要想充 分发掘本书的价值,你应该具有一定的编程背景并且熟悉面向对象编程的概念。如果你是 Objective-C语言的新手,可以直接跳到附录D,那里概述了这门语言。此外,在学习时还可以将 附录D当作快速参考,做练习时可以查询其中讲到的语法。根据学习方式的不同,这些方法总 归有一个适合你。 虽然大部分章节侧重于iPhone开发,但是相同的概念也适用于iPad开发。如果某些功能只适 用于iPad,那么本书会予以指出。 注意:本书讨论的所有示例都是使用iPhone SDK 4.0编写和测试的。虽然 Apple仍然把这个SDK命名为iPhone SDK,但是它同样可以用于开发iPhone、 iPod Touch和iPad应用程序。在编写本书时(2010年7月),Apple继续使用 “iPhone Simulator”这个名称指代用于模拟iPhone和iPad的模拟器。虽然我尽 力保证书中的屏幕截图是使用最新的iPhone SDK的结果,但是当iPhone SDK被 修改后,你看到的实际屏幕可能与本书不同。 iOS 4编程入门经典 VIII 本书内容 本书涵盖了使用iPhone SDK进行iPhone和iPad编程的基本原理,全书共分为21章外加5个 附录。 第1章介绍了iPhone SDK中的各种工具并解释了它们在iPhone和iPad开发中的用途。 第2章介绍了如何使用Xcode与Interface Builder来构建Hello World应用程序。重点在于快速 起步,随后的章节则详细介绍了应用程序的各个组成部分与组件。 第3章介绍了iPhone和iPad编程的基本概念:插座变量与动作。你将学习到如何借助于插座变量 和动作使代码与Interface Builder中的可视化元素进行交互,以及为什么它们是每个iPhone和iPad应 用程序不可或缺的组成部分。另外,你还将学习组成应用程序的用户界面的各个视图。 第4章介绍了iPhone SDK中提供的各个视图控制器。你将学习如何开发不同类型的应用程 序:View-based、Window-based、Split View-based和Tab Bar应用程序。 第5章介绍了如何把iPhone应用程序移植到iPad平台上,以及如何创建可以同时在iPhone和 iPad上运行的Universal应用程序。 第6章介绍了如何处理iPhone中的虚拟键盘。你将学习到如何根据需要隐藏键盘以及当键盘 显示时如何确保视图不会被键盘遮挡。 第7章介绍了当设备旋转时如何调整应用程序的UI。你将学习到当设备旋转时所触发的各种 事件,还将学习到如何强制应用程序在某一方向上显示。 第8章介绍了iPhone SDK中一种强大的视图——表视图,表视图通常用于显示数据行。本章 将会介绍如何在表视图中实现搜索功能。 第9章介绍了如何通过应用程序设置持久化应用程序首选项。借助于应用程序设置,你可以 通过iPhone与iPad上的Settings应用程序访问与应用程序相关的首选项。 第10章介绍了如何通过将数据保存到应用程序沙箱目录的文件中来持久化应用程序数据。 你还将学习到如何访问应用程序沙箱中的各个文件夹。 第11章介绍了如何使用嵌入式数据库SQLite3存储数据。 第12章概述了可在iPhone和iPad上实现简单动画的各种技术。你还将学习到iPhone SDK所支 持的各种仿射变换,以及如何在iPhone和iPad上播放视频。 第13章介绍了用于访问iPhone和iPad内置应用程序(如照片库、联系人等)的各种方式。你还 将学习到如何在自己的应用程序中调用内置应用程序(如Mail与Safari等)。 第14章概述了iPhone SDK提供的各个手势识别器,以帮助设备解释用户的输入手势。 第15章介绍了如何访问iPhone和iPad加速计,你还将学习到如何检测设备的摇动。 第16章介绍了如何在iPhone和iPad应用程序内使用Web服务。你将学习到与Web服务通信的 各种方式,包括SOAP、HTTP GET和HTTP POST。另外,你还还将学习到如何解析Web服务返 回的XML结果。 第17章探索了如何使用Game Kit框架进行蓝牙编程。你将学习如何使两个设备通过蓝牙连 接进行通信,以及如何在蓝牙连接上实现语音聊天。 第18章介绍了如何使用Bonjour协议把服务发布到网络上。 第19章介绍了如何实现使用推送通知的应用程序。APNs可以让应用程序连续地从服务提供 者那里接收状态更新,即使应用程序可能没有运行。 第20章介绍了如何使用Map Kit框架构建基于位置的服务。你还将学习如何获取地理位置以 前 言 IX 及如何使用这些数据显示地图。 第21章介绍了如何构建当用户切换到另一个应用程序时可以在后台运行的应用程序。你还 将学习如何使用新增的本地通知功能调度在特定时间间隔触发的通知。 附录A介绍了如何在实际的设备上测试应用程序。 附录B快速介绍了Xcode中的众多功能。 附录C快速介绍了Interface Builder中的众多功能。 附录D提供了关于Objective-C的快速教程。不熟悉这门语言的读者应该在开始前阅读这一部 分的内容。 附录E包含了除第1章外每章末尾练习题的答案。请注意,附录E放到了网站上。 本书结构 本书将iPhone和iPad编程开发的学习任务划分为多个部分,这样就能在深入高级主题前消化 掉每一部分的内容。此外,还有几章再一次谈到了之前章节中介绍过的主题。这是由于在Xcode 与Interface Builder中解决问题的方式通常不止一种,因此通过这种方式你可以学习到开发iPhone 和iPad应用程序的不同技术。 如果你完全是个iPhone编程新手,那么应该首先阅读第1章与第2章。一旦掌握了这两章, 就请转到附录部分以了解关于所用工具与语言的更多信息。之后就可以继续学习第3章并不断进 入到高级主题。 本书的一大特点是每章的所有代码示例都独立于前面的章节。这样你就可以灵活地研究感 兴趣的主题并动手完成“试一试”。 阅读本书之前的准备 本书的大多数示例都能运行在iPhone Simulator(iPhone SDK的一部分)上。对于需要访问硬件 (如加速计)的练习,你需要一部真正的iPhone或iPad。一般来说,要想充分利用这本书并不一定 需要真正的iPhone或iPad(除非你打算将应用程序部署到App Store上)。 源代码和附录E 读者在阅读本书代码时,既可以亲自输入所有代码,也可以使用随书提供的代码文件。本 书所有代码均可从网站下载。进入该网站后,请根据本书的书名查找本书 (读者既可以使用搜索框进行查找,也可以使用书名列表进行查找),然后单击本书详细内容页面 上提供的Download Code链接,就可以下载本书提供的所有代码。 注意:由于许多书籍的名称与本书类似,因此建议读者通过本书的EISBN 进行查找,本书的EISBN为978-0-470-91802-9。 下载完代码后,读者可以利用压缩工具将代码解压。此外,读者还可以通过访问网站中提供的Wrox代码下载页面来获取本书提供的代 iOS 4编程入门经典 X 码,也可以下载Wrox出版的其他书籍提供的代码。 另外,本书的附录E(也就是本书练习的答案)以PDF格式提供,读者也可以下载阅读。 勘误表 为了避免本书文字和代码中存在错误,我们已经竭尽全力。然而,人无完人,错误在所难 免。如果读者在我们编写的书籍中发现了诸如拼写错误或代码缺陷等问题,那么请告诉我们, 我们对此表示十分感谢。利用勘误表反馈错误信息,可以为其他读者节省大量时间,同时我们 也能够受益于读者的建议,这有助于我们编写出质量更高的专业着作。 如果读者需要参考本书的勘误表,请在网站中通过搜索框或书名列表查找 本书。然后在本书的详细内容页面上,单击Book Errata链接。在随后显示的页面中,读者可以看 到与本书相关的所有勘误信息,这些信息是由读者提交,并由Wrox的编辑们加上的。通过访问 /misc-pages/booklist.shtml,读者还可以看到由Wrox出版的其他所有书籍的勘误表。 如果在Book Errata页面上找到您发现的错误,那么请转到页面/contact/ techsupport.shtml,针对您发现的每一项错误填写表格,并将表格发给我们,我们将对表格内容 进行认真审查,如果确实是我们书中的错误,那么我们将在该书的Book Errata页面上标明此错 误信息,并在后续版本中改正相关错误。 关于 如果读者希望与作者进行讨论,或希望能够参与读者的共同讨论,那么请加入论 坛。这个论坛是一个基于Web的系统,读者可以在论坛上发表与Wrox出版的书籍有关的技术信息, 并与其他读者和技术用户进行讨论。论坛提供了订阅功能,可以将与读者所选主题相关的新帖子定 期发送到读者的电子邮箱。Wrox的作者、编辑、业界专家以及其他读者都会参与论坛中的讨论。 读者可以在参与多个论坛的讨论,这些论坛不仅能够帮助读者更好地理 解本书,还有助于读者更好地开发应用程序。如果读者希望加入论坛,那么请按照以下步骤执 行操作: (1) 进入页面,单击Register链接。 (2) 阅读使用条款,然后单击Agree。 (3) 填写必要的信息(必要时还需要填写可选信息),然后单击Submit。 (4) 随后读者会收到一封电子邮件,邮件中说明了如何验证账号并完成整个加入过程。 注意:要阅读论坛信息,读者无须加入P2P论坛。但是如果需要发表主题 或发表回复,那么就必须加入论坛。 成功加入论坛后,读者就可以发表新主题了。此外,读者还可以回复其他主题。读者在任 何时间都可以阅读论坛信息。如果读者希望论坛将新的信息发送到自己的电子邮箱中,那么可 以单击论坛列表中论坛名称旁的Subscribe to this Forum图标,完成该功能设置。 如果读者需要获得更多与Wrox P2P相关的信息,请阅读P2P FAQs,这样可以获得大量与 P2P和Wrox所出版书籍相关的具体信息。阅读FAQs时,请单击P2P 页面上的FAQs链接。