iOS 8案例开发大全

978-7-115-37374-8
作者: 朱元波 陈小玉 胡汉平 张晨洁
译者:
编辑: 张涛

图书目录:

详情

本书内容完全基于当前iOS的最新版本iOS 8,详细讲解了iOS8的最新功能和API。另外,本书中使用Objective-C和Swift两种语言进行案例编写,案例涵盖了通信、多媒体、图像处理、3D动画、游戏开发等热门的技术,是想从事iOS项目开发的读者案例指导书。

图书摘要

iOS 8案例开发大全
朱元波 陈小玉 胡汉平 张晨洁 编著
人民邮电出版社

北京

图书在版编目(CIP)数据

iOS 8案例开发大全/朱元波等编著.--北京:人民邮电出版社,2015.2

ISBN 978-7-115-37374-8

Ⅰ.①i… Ⅱ.①朱… Ⅲ.①移动终端—应用程序—程序设计 Ⅳ.①TN929.53

中国版本图书馆CIP数据核字(2014)第270561号

内容提要

本书实例全面、典型,几乎囊括了所有和iOS应用开发相关的知识。全书分为14章,内容包括搭建开发环境,界面布局,iOS控件应用,文本和表格处理,屏幕显示,图形、图像和动画,多媒体应用,互联网应用,地图定位应用,传感器,游戏开发,移动Web应用,Swift实战。全书讲解细致,内容通俗易懂。

本书适合iOS开发初学者、程序员作为参考工具书,也可以作为相关培训学校和大专院校相关专业的教学用书。

◆编著 朱元波 陈小玉 胡汉平 张晨洁

责任编辑 张涛

责任印制 张佳莹 彭志环

◆人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

北京铭成印刷有限公司印刷

◆开本:787×1092 1/16

印张:37.75

字数:1126千字  2015年2月第1版

印数:1-3500册  2015年2月北京第1次印刷

定价:79.00元

读者服务热线:(010)81055410 印装质量热线:(010)81055316

反盗版热线:(010)81055315

广告经营许可证:京崇工商广字第0021号

前言

iOS最早于2007年1月9日的苹果Macworld展览会上公布,随后苹果公司于同年6月发布了第一版iOS操作系统。当前的市场显示,搭载iOS系统的iPhone手机仍然是最受欢迎的一款智能手机,搭载iOS系统的iPad仍然是当前最受欢迎的一款平板电脑。

本书特色

本书内容丰富,实例覆盖全面。我们的目标是通过一本图书提供多本图书的价值,读者可以根据自己的需要有选择地阅读。在内容的编写上,本书具有以下特色。

1.Objective-C和Swift双剑合璧

在本书涵盖的实例中,不但演示了用传统Objective-C语言开发iOS应用程序的方法,而且演示了用苹果最新语言——Swift开发iOS应用程序的方法,实现了Objective-C和Swift的开发应用对比,能够给读者以启迪。

2.实例全面

实例涉及UI、控件、游戏、网络、多媒体、地图定位等,几乎涵盖了所有的iOS应用领域,每个实例讲解细致,让读者真正明白具体原理和实现的方法。

3.结构合理

从开发者的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚。

4.易学易懂

本书条理清晰、语言简洁,可帮助读者快速掌握每个知识点。读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行有针对性地学习。

5.实用性强

本书彻底摒弃枯燥的理论和简单的操作,注重实用性,详细讲解了各个实例的具体实现,使用户在掌握相关的开发技能的同时,还能学习到相应的技巧。

读者对象

• 初学iOS编程的自学者

• Objective-C开发人员

• Swift开发人员

• 大中专院校的老师和学生

• 进行毕业设计的学生

• iOS 编程爱好者

• 相关培训机构的老师和学员

• 从事iOS开发的程序员

本书在编写过程中,得到了人民邮电出版社工作人员的大力支持,正是各位编辑的耐心和效率,才使得本书能在这么短的时间内出版。南阳理工学院的陈小玉编写了第3章、第6章、第9章。另外也十分感谢我们的家人,在我们写作的时候给予了巨大的支持。水平毕竟有限,纰漏和不足之处在所难免,恳请读者提出意见或建议,以便修订并使之更臻完善,编辑联系邮箱:zhangtao@ptpress.com.cn。

源程序下载地址:www.toppr.net。

读者交流答疑QQ群:283166615。

编者

第1章 搭建开发环境实战

都说“工欲善其事,必先利其器!”,在进行iOS 开发之前,开发者也同样需要先为自己准备一个好的开发工具,并预先搭建一个合适的开发环境。本章将以具体实例来详细介绍搭建iOS 开发环境中的知识,让读者从实例中体会搭建iOS开发环境的方法和技巧,为步入本书后面知识的学习打下基础。

实例001 下载并安装Xcode

实例说明

要开发iOS的应用程序,需要一台安装有Xcode 工具的Mac OS X 电脑。Xcode是苹果提供的开发工具集,提供了项目管理、代码编辑、创建执行程序、代码级调试、代码库管理和性能调节等功能。这个工具集的核心就是Xcode程序,它提供了基本的源代码开发环境。

Xcode是一款强大的专业开发工具,可以简单、快速而且以开发者熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言,Xcode要强大得多,它的设计目的是使开发者可以创建任何想要得到的软件产品类型,从Cocoa及Carbon应用程序,到内核扩展及Spotlight导入器等各种开发任务,Xcode都能完成。Xcode独具特色的用户界面可以帮助开发者以各种不同的方式来漫游工具中的代码,并且可以访问工具箱下面的大量功能,包括GCC、javac、jikes和GDB,这些功能都是制作软件产品需要的。它是一个由专业人员设计的又由专业人员使用的工具。

由于能力出众,Xcode 已经被 Mac 开发者社区广为采纳。而且随着苹果电脑向基于 Intel 的Macintosh迁移,转向Xcode变得比以往任何时候更加重要。这是因为使用Xcode可以创建通用的二进制代码,这里所说的通用二进制代码是一种可以把PowerPC和Intel架构下的本地代码同时放到一个程序包的执行文件格式。事实上,对于还没有采用Xcode的开发人员,转向Xcode是将应用程序连编为通用二进制代码的第一个必要的步骤。

具体实现

其实对于初学者来说,只需安装Xcode即可。通过使用Xcode,既能开发iPhone程序,也能够开发iPad程序。并且Xcode还是完全免费的,通过它提供的模拟器就可以在电脑上测试iOS程序。如果要发布iOS程序或在真实机器上测试iOS程序,就需要99美元。

(1)下载的前提是先注册成为一名开发人员,然后进入苹果开发页面主页https://developer.ap-ple.com/,如图1-1所示。

(2)登录Xcode的下载页面http://developer.apple.com/devcenter/ios/index.action,如图1-2所示。

(3)单击图1-2 左上方所示的“iOS 8 beta 2”链接,在新界面中显示下载Xcode 6 Beta 链接界面。在此需要注意,开发者必须拥有付费账号,否则不能下载Xcode 6 Beta,如图1-3所示。

(4)如果是付费账户,可以直接在苹果官方网站中下载获得。如果不是付费会员用户,可以从网络中搜索热心网友们的共享信息,以此来达到下载Xcode 6 Beta的目的。

(5)下载完成后单击打开下载的“.dmg”格式文件,然后双击Xcode文件开始安装,如图1-4所示。

图1-1 苹果开发页面主页
图1-2 Xcode的下载页面
图1-3 提示必须拥有付费账号
图1-4 下载界面

(6)在弹出的对话框中单击“Continue”按钮,如图1-5所示。

(7)在弹出的欢迎界面中单击“Agree”按钮,如图1-6所示。

(8)在弹出的对话框中单击“Install”按钮,如图1-7所示。

(9)在弹出的对话框中输入用户名和密码,然后单击按钮“好”,如图1-8所示。

图1-5 单击“Continue”按钮
图1-6 单击“Agree”按钮
图1-7 单击“Install”按钮
图1-8 单击“好”按钮

(10)在弹出的新对话框中显示安装进度,进度完成后的界面如图1-9所示。

图1-9 完成安装界面

(11)单击“Start Using Xcode”后可以启动Xcode,如图1-10 所示。

图1-10 启动Xcode后的界面

当然如果使用的是苹果系统,我们完全可以使用App Store来获取Xcode,这种方式的优点是完全自动,操作方便,比较适合于初学者。

实例002 改变Xcode工程的公司名称

实例说明

在接下来的内容中,将开始讲解使用Xcode开发环境的基本知识。使用Xcode创建程序的基本步骤如下。

(1)启动Xcode应用程序。

(2)如果开发新项目,依次选择File>New Project命令。

(3)为应用程序类型选择Command Line Utility、Foundation Tool,然后点击“Choose”命令。

(4)选择项目名称,还可以选择在哪个目录中存储项目文件,然后点击“Save”按钮。

(5)在右上窗格中,会看到文件progl.m(或者是开发人员为项目起的其他名称,后面是.m)。突出显示该文件,在该窗口下面出现的编辑窗口中输入你的程序。

(6)依次选择File>Save,保存已完成的更改。

(7)选择Build、Build and Run,或者点击Build and Go 按钮构建并运行程序。

(8)如果出现任何编译器错误或者输出内容不符合要求,对程序进行所需的更改并重复执行步骤(6)和步骤(7)。

具体实现

通过Xcode编写代码,代码的头部会有类似于图1-11所示的内容。

图1-11 头部内容

在此需要将这部分内容改为公司的名称或者项目的名称,注意在Xcode 3.2.x 之前,需要命令行设置变量。之后就可以通过 Xcode 的配置项进行操作了,操作步骤分别如图1-12和图1-13所示。

图1-12 选择“Edit Project Settings”选项
图1-13 设置显示的内容

这样如果再创建文件,就会产生图1-14所示的类似的效果了。

图1-14 新创建文件时自动生成的内容

实例003 通过搜索框缩小文件范围并格式化代码

实例说明

当项目开发到一段时间后,源代码文件会越来越多,如果再从Groups & Files的界面去点选,效率则比较差。此时开发人员可以借助 Xcode 的浏览器窗口缩小文件范围,此窗口的界面效果如图1-15所示。

图1-15 Xcode的浏览器窗口

具体实现

如果不想显示这个窗口,则可以通过快捷键“Shift+Command+E”来进行切换。在图 1-15 所示的搜索框中可以输入关键字,这样浏览器窗口里只显示带关键字的文件了,比如只想看Book相关的类,如图1-16所示。

例如在下面图1-17所示的界面中,有很多行都顶格了,此时需要进行格式化处理。

选中需要格式化的代码,然后在上下文菜单中进行查找,这是比较规矩的办法,如图 1-18所示。

Xcode没有提供快捷键,当然开发人员自己可以设置。用快捷键的做法是:“Ctrl+A”(全选文字)、“Ctrl+X”(剪切文字)、“Ctrl+V”(粘贴文字)。Xcode会对粘贴的文字格式化。

图1-16 输入关键字
图1-17 多行都顶格
图1-18 在上下文菜单中进行查找

实例004 代码缩进和提示处理

实例说明

有的时候代码需要缩进,有的时候又要做相反的操作。另外,使用 IDE 工具的一大好处是,工具能够帮助开发人员自动完成比如冗长的类型名称。

具体实现

单行缩进和其他编辑器类似,在Xcode中只需使用“Tab”键即可实现缩进。如果选中多行则需要使用快捷键,其中“Command+]”表示缩进;“Command+[”表示反向缩进。

至于自动提示功能,假如有下面所示的输出日志:

NSLog(@"book author: %@",book.author);

如果开发人员都自己输入会很麻烦,可以先输入 NS,然后使用快捷键“Ctrl+.”,会自动出现如下代码:

NSLog(NSString * format)

然后填写参数即可。快捷键“Ctrl+.”的功能是自动给出第一个匹配NS关键字的函数或类型,而NSLog是第一个。如果继续使用“Ctrl+.”,则会出现比如NSString的形式。依次类推,会显示所有NS开头的类型或函数,并循环往复。或者,也可以用“Ctrl+,”快捷键,比如还是NS,那么会显示全部NS开头的类型、函数、常量等的列表,可以在这里选择。其实,Xcode也可以在输入代码的过程中自动给出建议,比如要输入NSString。当在编辑界面输入NSStr时:

NSString

此时在后面会自动出现提示,然后只需直接按“Tab”键确认即可。如果开发人员输入的是NSStream,那么可以继续按。另外也可按“Esc”键,这时就会出现结果列表供选择了,如图1-19所示。

如果是正在输入方法,那么会自动完成图1-20所示的结果。

图1-19 出现结果列表
图1-20 自动完成的结果

开发人员可以使用“Tab”键确认方法中的内容,或者通过快捷键“Ctrl+/”将方法中的参数来回切换。

实例005 设置项目快照以及恢复到快照

实例说明

在不用Xcode之前,开发人员使用Eclipse作为开发工具,那时习惯把代码提交到SVN上,并借助SVN的Copy功能实现服务器端的快照。在Xcode上不方便使用版本控制,因此本地快照功能还是很值得使用的。

快照(Snapshot)的主要作用是好比给开发人员的项目拍照,然后就可以随便修改代码了,从而不必担心改乱了无法回退到之前的版本。如果确实改乱了,只需恢复到快照就可以了,恢复后好像什么也没发生过。

具体实现

可以使用“Make Snapshot”命令创建快照,如图1-21所示。另外也可以使用快捷键“Ctrl+Command+S”来完成。

图1-21 使用“Make Snapshot”命令创建快照

恢复的时候使用“Snapshots”命令实现,如图 1-22所示。

然后选中做快照的版本,如图1-23所示。

按下“Make”按钮可以拍照当前项目,并生成新的快照。可以在 Comments 框中写下该快照的备注信息,便于以后恢复时辨别,按下“Delete”按钮可以删除不必要的快照,按下“Restore”按钮可以用选中的快照覆盖当前项目,按下“Show Files”按钮可以列出选中快照和当前项目文件的差异。

图1-22 使用“Snapshots”命令恢复
图1-23 选中做快照的版本

例如在图 1-24 所示的界面中列出了两个不同的文件,再选中文件可以看到不同的地方给出了标注,如图1-25所示。

图1-24 两个不同的文件
图1-25 不同的地方给出了标注

实例006 实现复杂的查找和替代工作

实例说明

在编辑代码的过程中经常会做查找和替代的操作。如果只是查找,则直接按“Command+f”组合键即可,在代码的右上角会出现图 1-26 所示的对话框,只需在里面输入关键字,不论大小写,代码中所有命中的文字都高亮显示。

具体实现

其实在 Xcode 中也可以实现复杂的查找和替换工作,比如是否大小写敏感;是否使用正则表达式等。此功能的具体设置界面如图1-27所示。

通过图1-28中所示的“Find & Replace”可以切换到替代界面。

图1-26 查找界面
图1-27 复杂查找设置
图1-28 “Find & Replace”替换

例如,图1-29所示的界面将查找设置为大小写敏感,然后替代为myBook。

图1-29 替代为myBook

另外,也可以点击按钮是否全部替代,还是查找一个替代一个等。如果需要在整个项目内查找和替代,则依次单击“Edit”>“Find”>“Find in Project…”命令,如图1-30所示。

图1-30 “Find in Project…”命令

以查找关键字book为例,实现界面如图1-31所示。

替代操作的过程也与之类似,在此不再进行详细讲解。

图1-31 在整个项目内查找“book”关键字

实例007 使用书签

实例说明

使用Eclipse的用户会经常用到TODO标签,比如在编写代码的时候需要做其他事情,或者提醒用户以后再实现的功能时,可以写一个TODO注释,这样在Eclipse的视图中可以找到,方便以后找到这个代码并修改。

具体实现

其实Xcode也有和Eclipse书签类似的功能,比如存在一段图1-32所示的代码。

这段代码的方法printInfomation是空的,暂时不需要具体实现。但是需要记下来,便于以后能找到并补充。让光标在方法内部,然后单击鼠标右键,选择“Add to Bookmarks”命令,如图1-33所示。

图1-32 一段代码
图1-33 选择“Add to Bookmarks”命令

此时会弹出对话框,可以在里面填写标签的内容,如图1-34所示。

这样就可以在项目的书签节点找到这个条目了,如图 1-35 所示。此时点击该条目,可以回到刚才添加书签时光标的位置。

图1-34 填写标签的内容
图1-35 在项目的书签节点找到这个条目

实例008 实现断点调试

实例说明

在调试iOS项目程序时,最简单的调试方法是通过NSLog打印出程序运行中的结果,然后根据这些结果判断程序运行的流程和结果值是否符合预期。对于简单的项目,通常使用这种方式就足够了。但是,如果开发的是商业项目,它往往非常复杂,需要借助Xcode提供的专门调试工具。所有的编程工具的调试思路都是一样的。首先,开发人员要在代码中设置断点。想象一下,程序的执行是顺序的,可能怀疑某个地方的代码出了问题(引发 Bug),那么就在这段代码开始的地方,比如是方法的第一行,或者循环的开始部分,设置一个断点。那么程序在调试时会在运行到断点时中止,接下来可以一行一行地执行代码,判断执行顺序是否是自己预期的,或者变量的值是否和自己想的一样。

具体实现

在 Xcode 工程中设置断点的方法很简单,比如想对红框表示的行设置断点,就单击该行左侧的红圈位置,如图1-36所示。

图1-36 点击该行左侧红圈位置

单击后会出现断点标志,如图1-37所示。

图1-37 出现断点标志

然后运行代码,比如使用“Command+Enter”命令,这时将运行代码,并且停止在断点处,如图1-38所示。

可以通过“Shift+Command+Y”命令调出调试对话框,如图1-39所示。

这和其他语言IDE工具的界面大同小异,因为都具有类似的功能。下面是主要命令的具体说明。

(1)Continue:继续执行程序。

(2)Step over/ Step into/ Step out:用于单步调试,三者的具体说明如下所示。

图1-38 停止在断点处
图1-39 调试对话框

• Step over:将执行当前方法内的下一个语句。

• Step into:如果当前语句是方法调用,将单步执行当前语句调用方法内部第一行。

• Step out:将跳出当前语句所在方法,到方法外的第一行。

实例009 启动模拟器

实例说明

Xcode是一款功能全面的应用程序,通过此工具可以轻松输入、编译、调试并执行Objective-C程序。如果想在Mac上快速开发iOS应用程序,则必须学会使用这个强大工具的方法。在本实例中,将演示使用Xcode启动模拟器的基本方法。

具体实现

(1)启动Xcode,在File 菜单下选择“New Project”,如图1-40 所示。

(2)此时出现一个窗口,如图1-41所示。

(3)在New Project窗口的左侧,显示了可供选择的模板类别,因为开发人员的重点是类别iOS Application,所以在此需要确保选择了它。而在右侧显示了当前类别中的模板以及当前选定模板的描述。就此而言,请单击模板“Empty Application(空应用程序)”,再单击Next(下一步)按钮。窗口界面效果如图1-42所示。

(4)选择模板并点击“Next”按钮后,在新界面中Xcode将要求开发人员指定产品名称和公司标识符。产品名称就是应用程序的名称,而公司标识符创建应用程序的组织或个人的域名,但按相反的顺序排列。这两者组成了束标识符,它将开发人员的应用程序和其他iOS应用程序区分开来,如图1-43所示。

图1-40 启动一个新项目
图1-41 启动一个新项目:选择应用程序类型
图1-42 单击模板“Empty Application(空应用程序)”
图1-43 Xcode 文件列表窗口

例如,创建一个名为“Hello”的应用程序,这是产品名。设置域名是teach.com,因此将公司标识符设置为com.teach。如果开发人员没有域名,则开始开发时可使用默认标识符。

(5)将产品名设置为Hello,再提供选择的公司标识符。保留文本框Class Prefix 为空。从下拉列表Device Family中选择开发人员使用的设备(iPhone或iPad),并确保选中了复选框Use Automatic Reference Counting(使用自动引用计数)。不要选中复选框Include Unit Tests(包含单元测试),界面效果如图1-44所示。

图1-44 指定产品名和公司标识符

(6)对设置满意后,单击“Next”按钮。Xcode要求指定项目的存储位置。切换到硬盘中合适的文件夹,确保没有选中复选框Source Control,再单击“Create(创建)”按钮。Xcode 将创建一个名称与项目名相同的文件夹,并将所有相关联的模板文件都放到该文件夹中,如图1-45所示。

图1-45 选择保存位置

(7)在Xcode中创建或打开项目后,将出现一个类似于iTunes的窗口,开发人员将使用它来完成所有的工作,从编写代码到设计应用程序界面。如果开发人员第一次接触Xcode,令人眼花缭乱的按钮、下拉列表和图标将令人感到恐惧。为让开发人员对这些东西有大致的认识,下面首先介绍该界面的主要功能区域,如图1-46所示。

图1-46 Xcode界面

(8)运行iOS模拟器的方法十分简单,只需单击左上角的按钮即可。iPad模拟器的运行效果如图1-47所示。

iPhone模拟器的运行效果如图1-48所示。

图1-47 iPad模拟器的运行效果
图1-48 iPone模拟器的运行效果

实例010 使用第三方工具iPhone Simulator

实例说明

在 iOS 开发应用中,为了提高开发效率,需要借助第三方开发工具。例如测试程序需要模拟器iPhone Simulator,设计界面需要Interface Builder。iPhone Simulator是iPhone SDK中的最常用工具之一,无需使用实际的iPhone/iPod Touch就可以测试应用程序。iPhone Simulator位于如下文件夹中。

/Developer/iPhone OS <version>/Platforms/iPhoneSimulator.platform/Developer/Applications/

具体实现

在日常应用中,我们通常不需要直接启动iPhone Simulator,它在Xcode运行(或是调试)应用程序时会自动启动。Xcode 会自动将应用程序安装到iPhone Simulator 上。iPhone Simulator是一个模拟器,并不是仿真器。模拟器会模仿实际设备的行为。iPhone Simulator 会模仿实际的iPhone设备的真实行为。但模拟器本身使用Mac上的QuickTime等库进行渲染,以便效果与实际的iPhone保持一致。此外,在模拟器上测试的应用程序会编译为X86代码,这是模拟器所能理解的字节码。与之相反,仿真器会模仿真实设备的工作方式。在仿真器上测试的应用程序会编译为真实设备所用的实际的字节码。仿真器会把字节码转换为运行仿真器的宿主计算机所能执行的代码形式。

iPhone Simulator 可以模拟不同版本的iPhone OS。如果需要支持旧版本的平台以及测试并调试特定版本的OS上的应用程序所报告的错误,该功能就很有用。

启动 Xcode 后选择左边的 iPhone OS 下面的 Application,再依次选择“View”→“based Application”,然后为项目命名,如图1-49所示。

在新建的项目中不作任何操作,直接单击“Build and Run”按钮后即可在模拟器中运行程序,如图1-50所示。

图1-49 Xcode界面
图1-50 模拟器界面

相关图书

相关文章

相关课程