iOS开发从入门到精通(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-30 08:27:02

点击下载

作者:刘燕

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

iOS开发从入门到精通

iOS开发从入门到精通试读:

前言

随着4G网络和移动互联网技术的普及,以苹果iOS为代表的移动应用开发方兴未艾。苹果应用商店影响着各行各业,拥有超过30万个应用可供用户随意下载,每天有成百上千的iOS开发者跟随潮流,各种新奇的应用不断涌现,商店中造就了很多富翁,如果您真的有意从事iOS开发,并想通过好的软件设计让开发工作更加高效,那么就应该阅读本书。

学习新的编程语言绝非易事,一旦学会开发iOS应用程序,就很容易被它优美的设计和结构所打动。这种优美来自设计者的深思熟虑,通过把各种为人熟知或不为人知的设计模式应用到框架的各种基础结构之中,为开发者提供了很好的可扩展性与灵活性。

对于一个多年奋战在移动应用开发第一线的人来说,iOS开发是一个全新的领域。本书旨在成为iOS开发的权威指南,引导读者了解如何在iOS平台上以Objective-C语言实现开发。本书特色

☑ 系统的基础知识

全书兼顾理论和技术,以理论为纲,以技术为体,旨在向读者介绍iOS开发相关的知识,并以循序渐进的方式提高学习者的开发技能。读者只需通过24章内容的学习,就能掌握所有iOS基础知识。

☑ 可操作的实战体验

本书通过大量的案例实战,直观引导上机练习。所有的程序都经过作者认真调试,可以直接运行。读者不可能在一夜之间就开发出iOS应用程序,但是只要多加练习,完全可以在几天之内编写出初级应用程序。相信在苹果开发工具上花费的时间越多,创建出激动人心的应用程序的可能性就越大。

☑ 讲解深入浅出

全书很多内容来自编者多年开发的经验。根据iOS开发的实际情况,针对新版本进行内容上的调整。全书实例丰富,讲解到位,代码分析详细,实用性强。作为编程类书籍,免不了有大量的代码,但本书对多数代码都进行了阐释。

☑ 结构完整

本书以iOS开发为主题,由浅入深介绍了整个iOS框架层次,包括Objective-C语言简介、SDK的构成、Foundation框架、UIKit框架、QuartzCore、Core Animation以及其他第三方扩展框架等。

☑ 同步视频讲解,海量资源赠送

本书光盘中包含书中范例的同步视频讲解、源文件及大量参考素材(由于光盘容量有限,部分资源需登陆出版社网站按指定地址下载)。扫描图书封底的二维码,可在手机中在线学习教学视频。本书内容

本书共24章,具体结构划分如下。

第1部分:Objective-C语言部分,包括第1~7章。这部分内容主要介绍了Objective-C相关基础知识,包括iOS开发基础,Objective-C基本语法、数据类型、运算符、语句、C特性、类、协议和对象。

第2部分:iOS部分,包括第8~20章。这部分内容主要讲解iOS开发相关框架和各种应用主题。主要内容包括Foundation框架、iOS开发入门、窗口和视图、视图控制器、事件、iOS控件详解、绘图、动画、多媒体、设备管理、文件操作、数据库操作等。

第3部分:案例部分,包括第21~24章。这部分内容主要通过4个案例具体演示iOS应用程序开发的过程。本书读者

本书适合以下读者:

☑ 从未接触过Objective-C语言的初学者。

☑ 希望在苹果应用商店淘金的创业人员。

☑ 从其他语言转向iOS开发的程序员。

☑ 正准备转向移动应用开发的iOS应用程序开发人员。本书约定

本书是为从未进行过iOS开发的读者而写的,读者不需要有Objective-C、Cocoa和Apple开发工具方面的经验。当然,如果有一定的开发经验,将更容易掌握这些工具和技术。

读者在阅读每章的内容时,应该事必躬亲,手动输入每行代码,同时应该理解每一节中的重要概念。另外。读者还需花时间阅读APP开发文档,并研究本书介绍的主题。有关iOS开发的信息浩如烟海,而本书的篇幅有限,只能为读者打下坚实的iOS开发基础。

阅读本书之前,读者需要已安装苹果Mac OS X 10.10.x以上版本操作系统的计算机,PC也可以安装Mac OS X,或根据系统情况和需要选择安装iPhone SDK软件包,可以在http://developer.apple.com/iphone/program/download.html免费下载。

本书所有示例都是用Mac OS X 10.10上的Xcode 6.4以及iOS 9开发的。读者需要一个苹果开发人员账户来访问大部分工具和文档,并且需要一个开发人员许可证来运行iOS设备上的应用程序。可参考https://developer.apple.com/programs/并注册账号。本书中大部分示例可以在Xcode 6.4的iOS模拟器中运行。使用iOS模拟器就不需要苹果开发人员许可证了。当然,如果读者需要把自己开发的程序放在App Store上销售,还需要花费99美元去购买许可证。

苹果网站上提供了大量文档。如果想在Xcode中寻找文档,请在Help菜单下选择Documentation and API Reference,在Documentation Organizer窗口中单击搜索图标,输入文档的标题,并从搜索结果中选择文档。如果想在苹果官方网站查找文档,可以访问https://developer.apple.com/,单击Member Center并登录,选择iOS Dev Center,并在搜索框中输入文档关键词即可。关于我们

参与本书编写的人员还包括咸建勋、奚晶、文菁、李静、钟世礼、李增辉、甘桂萍、杨凡、李爱芝、余乐、孙宝良、余洪萍、谭贞军、孙爱荣、何子夜、赵美青、牛金鑫、孙玉静、左超红、蒋学军、邓才兵、袁江、李东博等。由于编者水平有限,书中疏漏和不足之处在所难免,欢迎读者朋友不吝赐教。广大读者如有好的意见、建议,或在学习本书时遇到疑难问题,可以联系我们,我们会尽快为您解答,联系方式为jingtongba@163.com。编者第1章iOS基础(视频讲解:23分钟)

iOS是目前最主流的两种移动设备操作系统之一(另一种是Android),该操作系统由苹果公司开发,最早于2007年1月9日的Macworld大会上公布,随后于同年6月发布第一版iOS操作系统,当初的名称为iPhone runs OS X。最初iOS是设计给iPhone使用的,后来陆续套用到iPod touch、iPad及Apple TV等苹果产品上。

本章将简单介绍iOS基础知识及其架构,熟悉使用Xcode编写简单的Objective-C程序,以及创建简单的单视图界面项目,为后面实践学习奠定基础。【学习要点】

→ 了解iOS

→ 了解Objective-C

→ 熟悉Xcode工具

→ 能够在Xcode中编写Objective-C程序,并进行测试

→ 能够在Xcode中创建应用项目1.1iOS发展历史

iOS系统诞生至今已近10年,这期间手机行业发生了翻天覆地的变化。从第一代时的无名小辈,到现在的行业霸主,iOS经过不断发展和完善,逐步被用户熟悉和追捧。下面简单介绍iOS的发展历史。1.iPhone OS 1.0

2007年1月9日,苹果公司在Macworld展览会上公布iPhone OS,随后于同年6月发布第一版iOS操作系统,最初名称为iPhone Runs OS X。

2007年10月17日,苹果公司发布了第一个本地化iPhone应用程序开发包(SDK),并且计划于次年2月发送到每个开发者以及开发商手中。

3.5英寸480×320分辨率的大屏幕、多点触控的交互方式,以及简洁的UI,颠覆了人们对于传统意义上手机的认识。如图1.1所示为iPhone OS 1.0界面。2.iPhone OS 2.0

在iPhone OS诞生初期,还没有应用商店可供下载第三方的应用程序。苹果公司在2008年3月发布了第一款iOS软件开发包,并且将iPhone Runs OS X改名为iPhone OS,如图1.2所示为iPhone OS 2.0界面。图1.1 iPhone OS 1.0图1.2 iPhone OS 2.0

同年7月,苹果公司推出App Store,这是iOS历史上的一个重要里程碑,它的出现开启了iOS和整个移动应用时代。2008年9月,苹果将iPod touch系统也换成了iPhone OS。

收入三七分成的制度和良好的生态环境迅速吸引了大量开发者。在此后的几年中,苹果不停完善App Store的功能。直到现在,App Store里的应用数量都是苹果最值得骄傲的地方之一。3.iPhone OS 3.0

iPhone OS 3.0的实用性较之前大大增强,填补了前两代系统的空白。例如,键盘的横向模式、新邮件和短信的推送通知、彩信、数字杂志,以及最初的语音控制功能,能够帮助用户寻找、播放音乐以及调用联系人,还有最重要的复制粘贴功能。

2010年4月,苹果发布了iOS 3.2。iOS 3.2是一次划时代的演变,因为这是第一款针对大屏iPad平板优化的移动系统,苹果公司重新设计了iPhone OS的系统结构和自带程序,如图1.3所示。4.iOS 4

2010年6月,苹果公司将iPhone OS改名为iOS,同时还获得了思科iOS的名称授权。

2010年第四季度,苹果公司的iOS占据了全球智能手机操作系统26%的市场份额。

2011年10月4日,苹果公司宣布iOS平台的应用程序已经突破50万个。

2012年2月,应用总量达到552247个,其中游戏应用最多,达到95324个,比重为17.26%;书籍类总量为60604个,排在第二,比重为10.97%;娱乐应用排在第三,总量为56998个,比重为10.32%。

iOS 4是前四代iOS系统中外观改善最大的一代操作系统,乔布斯及其设计团队为界面上的图标设计了复杂的光影效果,让界面看上去更加漂亮,如图1.4所示。例如,Game Center的界面颜色丰富,绿色、酒红色、黄色等,上下底部则是类实木设计。正是在这一版系统中,仿真拟物风格(skeuomorphic)开始完善起来。图1.3 iPhone OS 3.2图1.4 iOS 45.iOS 5

iOS 5的界面与iOS 4基本相同,新添了一项重要功能:Siri。这是苹果第一次尝试让用户以不同的方式使用iOS设备,并将Siri打造成为iOS中的个人助理服务。

仿真拟物设计在iOS 5中可谓达到了极致,苹果的软件界面中大量模仿现实世界中的实物纹理,例如,黄色纸张背景的备忘录和亚麻纹理的提醒应用。通知中心也在此版本中被引入了。6.iOS 6

2012年6月,苹果公司在WWDC 2012上发布了iOS 6,提供了超过200项新功能。例如,全新设计的地图软件,Passbook,全景相机,蜂窝数据状态下的FaceTime,丢失模式等都在iOS 6中加入。7.iOS 7

2013年6月10日,苹果公司在WWDC 2013上发布了iOS 7,重绘了所有的系统APP,去掉了所有仿实物化,整体设计风格转为扁平化设计,采用全新的图标界面设计,总计有上百项改动,其中包括控制中心、通知中心、多任务处理能力等。8.iOS 8

2014年6月3日,苹果公司在WWDC 2014上发布了iOS 8。iOS 8对其下所有平台进行了整合,使其生态环境愈发完善。Continuity功能的加入使苹果旗下的产品联系得更紧密,如图1.5所示。图1.5 Continuity9.iOS 9

在WWDC 2015上,苹果公布了iOS 9系统,除了功能上的各种升级,苹果把iOS 9的升级门槛控制在与上一代的iOS 8相同,支持的升级设备与iOS 8相同,即低版本的iPhone 4S手机也可以升级到iOS 9,iPhone 4S作为最受欢迎的iPhone手机之一,这无疑是一个好消息,如图1.6所示。图1.6 iOS 910.iOS 10

在WWDC 2016中,苹果发布了最新一代的iOS 10系统,带来包含众多出色新功能的APP,以及全新设计的地图、照片和Apple Music。实现Apple Pay网页支付。系统设计了iOS、macOS、watchOS、tvOS四大支柱操作系统。1.2iOS特性1.界面设计

iOS支持多点触控操作。控制方法包括滑动、轻触开关及按键。与系统互动包括滑动(Swiping)、轻按(Tapping)、挤压(Pinching,通常用于缩小)及反向挤压(Reverse Pinching or Unpinching,通常用于放大)。此外,通过iOS内建的加速器,可以令其旋转装置改变其y轴,以令屏幕改变方向,这样的设计使iPhone更便于使用。

屏幕的下方有一个Home按键,界面底部则是dock,使用者最常用的4个程序图标被固定在dock上。界面上方有一个状态栏能显示有关资讯,如时间、电量和信号强度等。界面中间主体区域用于显示当前的应用程序。启动iPhone应用程序的唯一方法就是在当前屏幕上点击该程序的图标,退出程序则是按下屏幕下方的Home键。在第三方软件退出后,iPhone应用程序直接就被关闭了,但在iPhone 3.0及后续版本中,当第三方软件收到了新的信息时,苹果公司的服务器将把这些通知推送至iPhone或iPod Touch上(不管是否正在运行中)。2.iOS内置大量应用程序

以iPhone 4.1版本为例,iPhone主接口包括以下内建的应用程序:SMS(短信)、日历、照片、相机、YouTube、股市、地图(AGPS辅助的Google地图)、天气、时间、计算器、备忘录、系统设定、iTunes、App Store以及联络资讯。还有4个位于最下方的常用应用:电话、Mail、Safari和iPod。在后继版本中,新的应用程序不断充实,功能也不断得到完善,在此就不再一一举例。3.第三方支持

iOS支持第三方应用,用户只能从App Store中用官方的方法安装完整的第三方应用软件。然而,自iOS起步之日起,就已经有App Store以外第三方软件可以在iPhone上运行,但是任何一次iOS更新都可能会破坏这些软件。4.硬件支持

☑ 多点触摸和手势。触摸功能在iOS设备之前就被采用,但基本都是单点触摸,即只能用一个手指,而iOS设备能够感应多个手指的触摸。为了配合这种多点触摸,iOS上的触摸分为多种手势:触击、双击、滑动、长时间触击、轻拂、刷屏和手指合拢张开等。

☑ 统一的屏幕尺寸。统一的屏幕尺寸给应用软件开发带来很多好处,开发人员可以不用关心屏幕尺寸适配的问题,从而把精力集中在其他方面。

☑ 高分辨率。iPhone 4S的屏幕分辨率是960×640,iPhone 5和第5代iPod touch的屏幕分辨率是1136×640,第1、2代iPad的屏幕分辨率是1024×768,第3代iPad的屏幕分辨率是2048×1536,而iPad mini的屏幕分辨率是1024×768。

☑ 重力加速计。iOS内置了重力加速计。有了重力加速计,用户能够玩很多有意思的游戏(如极品飞车,它可以把iPhone作为方向盘,通过重力加速计感应方向的变化)。此外,还有很多与重力加速计有关的应用软件,如水平尺应用等。

☑ 指南针。iOS内置了指南针设备。很多应用基于指南针,例如,导航软件和地图应用软件。

☑ 蓝牙和Wi-Fi连接。iOS内置了蓝牙和Wi-Fi通信模块。iOS设备之间可以采用Wi-Fi互相连接,也可以采用蓝牙进行连接,很多基于局域网的游戏就是通过这个功能实现的。当然,也可以通过Wi-Fi上网。此外,iOS还可以与计算机连接。1.3iOS架构

iOS架构和Mac OS的基础架构相似。从高级层次来看,iOS扮演底层硬件和应用程序(显示在屏幕上的应用程序)的中介,如图1.7所示。用户所创建的应用程序不能直接访问硬件,而需要和系统接口进行交互。系统接口转而又去和适当的驱动打交道。这样的抽象可以防止应用程序改变底层硬件。

iOS实现可以看作是多个层的集合,如图1.8所示,底层为所有应用程序提供基础服务,高层则包含一些复杂巧妙的服务和技术。图1.7 应用程序位于iOS上层图1.8 iOS架构层次

在编写代码时,应该尽可能地使用高层框架,而不要使用底层框架。高层框架为底层构造提供面向对象的抽象。这些抽象可以减少需编写的代码行数,同时还对诸如Socket和线程这些复杂功能进行封装,从而让编写代码变得更加容易。虽说高层框架是对底层构造进行抽象,但是它并没有把底层技术屏蔽起来。如果高层框架没有为底层框架的某些功能提供接口,开发者可以直接使用底层框架。注意:虽然应用程序通常会和底层硬件隔离,但是编写应用程序代码时仍需考虑设备之间的某些差异。例如,iPad和iPod touch不能打开包含电话号码的URL,但是iPhone可以。1.3.1 Cocoa Touch层

Cocoa Touch层包含创建iOS应用程序所需的关键框架。上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础。在开发应用程序时,尽量不要使用更底层的框架,尽可能使用该层的框架。1.Cocoa Touch层高级特性

Cocoa Touch层包含如下常见特性,对于打算在应用程序中支持这些特性的用户来说,掌握这些特性尤为重要。

☑ 多任务。

☑ 数据保护。

☑ 推送通知服务。

☑ 本地通知。

☑ 手势识别器。

☑ 文件共享支持。

☑ 点对点服务。

☑ 标准系统视图控制器。提示:UIKit框架中包含一个UIGestureRecognizer 类,它定义了所有手势识别器的基本行为。可以使用自定义的手势识别器子类或系统定义的某个子类来处理下面这些标准手势:☑ 拍击(任意次数的拍击)。☑ 向里或向外捏(用于缩放)。☑ 摇动或者拖曳。☑ 擦碰(以任意方向)。☑ 旋转(手指朝相反方向移动)。☑ 长按。2.Cocoa Touch 层包含的框架

☑ Address Book UI框架。

Address Book UI框架(AddressBookUI.framework)可以显示创建或编辑联系人的标准系统界面。

☑ Event Kit UI框架。

Event Kit UI框架(EventKitUI.framework)提供一个视图控制键,可以展现查看并编辑事件的标准系统界面。Event Kit UI框架的事件数据是该框架的构建基础。

☑ Game Kit框架。

Game Kit框架(GameKit.framework)支持点对点连接及游戏内语音功能。可以通过该框架为应用程序增加点对点网络功能。

☑ iAd框架。

可以通过iAd框架(iAd.framework)在应用程序中发布横幅广告。

☑ Map Kit框架。

Map Kit框架(MapKit.framework)提供一个可被嵌入到应用程序的地图界面,该界面包含一个可以滚动的地图视图。

☑ Message UI框架。

可以利用Message UI框架(MessageUI.framework)撰写电子邮件,并将其放入用户的发件箱排队等候发送。

☑ UIKit框架。

UIKit框架(UIKit.framework)的Objective-C编程接口为实现iOS应用程序的图形及事件驱动提供关键基础。iOS系统所有程序都需要通过该框架实现应用程序管理、用户界面管理、图形和窗口支持、多任务支持、处理触摸及移动事件等。1.3.2 媒体层

媒体层包含图形技术、音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们使创建外观与音效俱佳的应用程序变得更加容易。可以使用iOS的高级框架更快速地创建高级的图形和动画,也可以通过底层框架访问必要的工具,从而以某种特定的方式完成某种任务。1.媒体层高级特性

媒体层包含如下常见特性。

☑ 图形技术。

☑ 音频技术。

☑ 视频技术。2.媒体层包含的框架

媒体层包含如下常用框架。

☑ AV Foundation框架。

☑ Core Audio框架。

☑ Core Graphics框架。

☑ Core Text框架。

☑ Core Video框架。

☑ Image I/O框架。

☑ 媒体播放器框架。

☑ OpenGL ES框架。

☑ OpenAL框架。

☑ Quartz Core框架。

☑ 资产库框架。1.3.3 Core Services层

Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但这些服务是系统很多部分赖以构建的基础。1.Core Services层高级特性

☑ 块对象。

在iOS系统中,块对象通常用于作为委托或委托方法的替代品、作为回调函数的替代品、实现一次性操作的完成处理器、简化在群体所有子项上迭代执行某种任务的操作和配合分发队列等场合。

☑ Grand Central Dispatch。

iOS 4.0引入了Grand Central Dispatch(GCD),它是BSD级别的技术,可用于在应用程序内管理多个任务的执行。

☑ 应用程序内购买(In App Purchase)。

可以在应用程序内出售内容或服务。

☑ 定位服务。

应用程序可使用Core Location框架提供的接口追踪用户位置。

☑ SQLite库。

SQLite库允许开发者将一个轻量级SQL数据库嵌入到应用程序,而且开发者不需要运行独立的远程数据库服务器进程。

☑ XML支持。

Foundation框架支持使用NSXMLParser类从XML文档中解析元素。2.Core Services层包含的框架

下面将介绍Core Services层的框架及这些框架提供的服务。

☑ Address Book框架。

☑ CFNetwork框架。

☑ Core Data框架。

☑ Core Foundation框架。

☑ Core Location框架。

☑ Core Media框架。

☑ Core Telephony框架。

☑ Event Kit框架。

☑ Foundation框架。

☑ Mobile Core Services框架。

☑ Quick Look框架。

☑ Store Kit框架。

☑ System Configuration框架。

Foundation框架为下述功能提供支持:

☑ 群体数据类型(数组、集合等)。

☑ 程序包。

☑ 字符串管理。

☑ 日期和时间管理。

☑ 原始数据块管理。

☑ 偏好管理。

☑ URL及数据流操作。

☑ 线程和RunLoop。

☑ Bonjour。

☑ 通信端口管理。

☑ 国际化。

☑ 正则表达式匹配。

☑ 缓存支持。提示:Foundation框架(Foundation.framework)为Core Foundation框架的许多功能提供Objective-C封装。可以参考Core Foundation框架了解前面对Core Foundation框架的描述。1.3.4 Core OS层

Core OS层的底层功能是很多其他技术的构建基础。在通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架。但是,在直接处理安全事务或和某个外设通信时,必须应用到该层的框架。

Core OS层包含Accelerate框架、External Accessory框架、Security框架和System框架等。1.4Objective-C概述

学习iOS,首先应该掌握iOS系统的编程语言——Objective-C。Objective-C是一种以C为基础,并结合Smalltalk特征扩充出来的面向对象语言,该语言于20世纪80年代初由Brad J.Cox创建。1988年,NeXT公司获得了Objective-C语言的授权。1996年,苹果公司收购NeXT公司,Objective-C语言就变成了Apple公司的专用编程语言。2007年,苹果公司发布了Objective-C的升级版,并称之为Objective-C 2.0。

与Java、C等编程语言不同的是,Objective-C的应用并不太广泛,很长时间以来,Objective-C在商用语言排行榜的位置并不靠前,但由于苹果电子产品的广泛流行,Objective-C目前是上升势头最快的编程语言。

另外,Objective-C是一种苹果公司专用编程语言,实际上,目前很少有公司或产品采用Objective-C语言。对于大部分学习者来说,学习Objective-C的目的就是为了开发iOS应用,而iOS应用开发则具有光明的前景。

虽然Objective-C是以C为基础扩展而来的,也受到了Smalltalk的影响,但即使读者没有任何C语言的编程基础,甚至根本不知道Smalltalk这种语言,也不影响学习Objective-C。1.5比较iOS和Mac OS

虽然iOS的大多数框架同样存在于Mac OS X系统中,但不同平台的框架具有不同的实现方式和使用方式。下面介绍Mac OS X开发者开发iOS应用程序需要注意的重要事项。1.5.1 UIKit与AppKit的对比

在iOS系统中,创建图形应用程序、管理事件循环及执行其他界面相关的任务都离不开UIKit提供的基础结构。UIKit和AppKit具有非常显著的区别,在设计iOS应用程序时,应该特别注意这一点。也正是因为这个原因,在将Cocoa应用程序迁移到iOS系统时,必须提供和界面相关的类和逻辑。表1.1列出了框架之间特定的差异,帮助读者理解iOS中的应用程序应该具有什么特征。表1.1 界面技术的差异续表1.5.2 Foundation框架的差异

Mac OS X和iOS都有Foundation框架,大多数类都可以在这两个平台的Foundation框架中找到。两个平台的Foundation框架都支持数值管理、字符串、集合、线程及许多其他常见的数据类型。表1.2列出了一些不包含于iOS框架的重要功能及相关类不存在的缘由,同时也尽量列出有哪些技术可作为替代。表1.2 iOS的Foundation不具有的技术1.5.3 其他框架的改变

对于同时存在于iOS和Mac OS X的框架,它们之间有很大的差异,表1.3列出了同时存在于iOS与Mac OS X的与其他框架的重要差异。表1.3 同时存在于iOS和Mac OS X的框架之间的差异续表1.6iOS开发环境和工具

在正式开始学习iOS应用开发之前,读者应先拥有一台运行OS X系统的计算机。直接购买的Apple计算机都安装有最新的OS X系统,建议选择可运行OS X 10.8及其以上系统的计算机。

如果经济条件有限,也可使用普通计算机,甚至使用虚拟机来安装OS X系统,这样也可用于开发iOS应用,俗称黑苹果操作系统。但是此种搭建iOS开发环境的方式比较复杂,需要安装虚拟机,再安装OS X系统以及相关SDK,操作繁琐,配置复杂,谨慎选用。

苹果公司为iOS应用开发者准备了强大的IDE工具——Xcode,Xcode集成了功能强大的界面设计器(Interface Builder),它可以让初学者充分享受快速上手的快乐,即使开发者没有任何编程基础,也可通过拖曳控件设计出一个美观的界面。当然,只是界面而已。如果需要让应用程序能与用户交互,能按一定逻辑去执行操作,最终还是需要通过编码来实现。1.6.1 了解Xcode

苹果公司于2008年3月6日发布了iPhone和iPod touch的应用程序开发包,其中包括Xcode开发工具、iPhone SDK和iPhone手机模拟器。

iOS开发工具主要是Xcode。自从Xcode 3.1发布以后,Xcode就成为iPhone软件开发工具包的开发环境。Xcode可以开发Mac OS X和iOS应用程序,其版本是与SDK相互对应的。例如,Xcode 3.2.5与iOS SDK 4.2对应,Xcode 4.1与iOS SDK 4.3对应,Xcode 4.2与iOS SDK 5对应,Xcode 4.5和Xcode 4.6与iOS SDK 6对应,Xcode 5与iOS SDK 7对应。

在Xcode 4.1之前,还有一个配套使用的工具Interface Builder,它是Xcode套件的一部分,用来设计窗体和视图,通过此工具可以“所见即所得”地拖曳控件并定义事件等,其数据以XML的形式被存储在xib文件中。在Xcode 4.1之后,Interface Builder成为了Xcode的一部分,与Xcode集成在一起。目前,最新版本为Xcode 7.3,同时Xcode 8 Beta也开始提供测试(https://developer.apple.com/xcode/)。

打开Xcode工具,需要先创建或打开一个项目,然后Xcode会显示如图1.9所示的界面。

Xcode主界面可分为5个区域,简单说明如下。

☑ 顶部区域:包括运行程序按钮、停止程序按钮、为程序选择运行平台、切换不同的编辑器、开关左面板、底部面板、右面板等按钮。简单地说,Xcode的上部区域相当于一个工具条,该工具条包含各种按钮。

☑ 左侧面板:左侧面板是Xcode的导航面板,该面板的顶部包含8个按钮,用于切换不同的导航面板。

☑ 底部面板:底部面板是Xcode的调试、输出区域,包括各种控制台输出、调试信息等。

☑ 右侧面板:用于管理项目中不同种类的对象,该面板实际上包含了两个面板,即检查器面板和库面板,其中检查器面板随着项目不同将包含大量不同的检查器;而库面板则包含了文件模板库、代码片段库、对象库和媒体库。

☑ 详细编辑区:这是Xcode的主体区域,位于中间部分,iOS应用界面设计和编写代码都是在该区域内完成的。图1.9 Xcode主界面

下面将详细介绍Xcode界面中的主要面板,帮助读者初步熟悉Xcode。在阅读之前读者还需要参考1.7.2节介绍的步骤创建一个项目。1.6.2 Xcode导航面板

Xcode主界面左侧是导航面板,导航面板总共包含8个面板,如图1.10所示。图1.10 项目导航面板

其中,项目导航将会以组的形式来管理项目的源代码、属性文件、图片、生成项目等各种资源。

单击导航面板顶部第2个按钮,将切换到符号导航面板,如图1.11所示。

符号导航面板主要以类、方法、属性的形式来显示项目中所有的类、方法和属性。通过符号导航面板可以非常方便地查看项目包含的所有类,以及每个类所包含的属性、方法,从而允许开发者快速定位指定类、指定方法,以及指定属性。

单击导航面板顶部第3个按钮,将切换到搜索导航面板,开发者可以在搜索面板的搜索框中输入想要搜索的目标字符串,按Enter键后,搜索面板将会显示如图1.12所示的搜索面板。图1.11 符号导航面板图1.12 搜索导航面板

单击导航面板顶部的第4个按钮,将切换到问题导航面板。如果项目中存在任何警告或错误,都会在该面板中列出来,如图1.13所示。其中红色圆圈列表项表示错误,红色感叹号列表项表示警告。图1.13 问题导航面板

单击导航面板顶部的第5个按钮,将切换到测试导航。测试导航的用途:统一显示代码白盒测试结果,测试用例执行情况,以及快捷行测试用例。在这个区域,当鼠标指针移动到测试用例最右边时就会出现一个执行按钮,单击这个按钮测试就会自动开始执行。如果测试成功就会在相应的用例旁边出现一个绿色的勾,反之就会出现一个红色的叉。

单击导航面板顶部的第6个按钮,将切换到调试导航。调试导航的用途:统一显示应用程序调试状态,或者在出错情况下堆栈的调试状态,CPU的使用情况,以及相关的网络和内存信息等。一个好的程序员都是从Debug开始的,用户少不了和这个面板打交道,务必学会如何看Frame,如何看线程,以及程序崩溃时通过调试树找到出错行。

单击导航面板顶部的第7个按钮,将切换到断点导航面板。断点导航的用途:统一显示所有断点。用户可以通过右键快速编辑、禁用或者删除断点。编辑断点功能包括设置断点的触发条件、忽略次数以及断点发生时的自动处理动作,这些功能可以方便地应用于一些比较复杂的调试场景。

单击导航面板顶部的第8个按钮,将切换到日志导航。日志导航的用途:统一显示所有的变更日志和信息,主要包含两部分内容:编译调试日志和源代码变更日志。单击Build或者Debug按钮,可以在编辑区看到详细的编译、调试日志,而Project目录下的变更日志就是git的提交信息,用户可以查看到详细的提交日志,以及文件变更前后的差异对比。1.6.3 Xcode检查器面板

Xcode的检查器面板位于主界面右侧的上半部分,对于普通源代码文件而言,检查器面板只显示文件检查器和快速帮助检查器。

文件检查器用于显示该文件存储的相关信息,包括文件名、文件类型、文件存储路径、文件编码等基本信息。

当用户在左边的项目导航面板中选中某个源代码文件之后,单击Xcode右边栏顶部的第一个按钮,Xcode打开的文件检查器面板如图1.14所示。图1.14 文件检查器面板

文件检查器主要用于显示、更改该文件存储和文件编码的详细信息。

单击文件检查器面板上方的第二个按钮,将会显示快速帮助检查器面板,当开发者把光标停留在任何系统类上时,该面板就会显示有关该类的快速帮助,快速帮助包括该类的基本说明,以及有关该类的参考手册、使用指南和示例代码。

当切换到快速帮助检查器面板,并将光标停在AppDelegate.h文件中的UIApplicationDelegate上时,快速帮助检查器面板将会显示如图1.15所示的帮助信息。

如果在项目导航面板中选中*.storyboard文件,或选中*.xib文件,将会看到右边的检查器面板上方会显示更多的检查器图标。图1.16显示了当用户选中Main.storyboard后右边显示的检查器面板。图1.15 快速帮助检查器面板图1.16 界面设计文件的检查器面板

从图1.16中可以看到,Xcode将会添加如下4个与界面设计相关的检查器,从第3个按钮开始依次说明如下。

☑ 身份检查器:用于管理界面组件的实现类、恢复ID等标识性属性。

☑ 属性检查器:用于管理界面组件的显示方式、背景色等外观属性。

☑ 大小检查器:用于管理界面组件的宽、高、x坐标、y坐标等大小和位置相关属性。

☑ 连接检查器:用于管理界面组件与程序代码之间的关联性。1.6.4 Xcode库面板

Xcode主界面右侧下半部分就是库面板,包括如下4种库。

☑ 文件模板库:该库用于管理各种文件模板,开发者可将指定的文件模板拖入项目,从而快速创建指定类型的文件。

☑ 代码片段库:该库用于负责管理各种代码片段,开发者将这些代码片段直接拖入源代码中。

☑ 对象库:该库负责管理各种iOS界面组件,这些界面组件是开发iOS应用的基础。

☑ 媒体库:该库负责管理该项目中各种图片、音频等各种多媒体资源。

单击库面板上方的第1个按钮,将切换到文件模板库,库面板显示了大量文件模板,如图1.17所示。图1.17 文件模板

该库面板内包括Objective-C类、Objective-C协议等大量文件模板,当为项目添加某个类型的文件时,只要将该文件模板的图标拖入项目即可。Xcode将会弹出如图1.18所示的对话框。图1.18 创建模板文件

在对话框中,添加该文件的文件名,并选择将文件添加到哪个组或项目中,接着单击Create按钮就会创建该文件。

单击库面板顶部的第2个按钮,将会切换到代码片段库,如图1.19所示。如果希望在源代码中插入指定的代码片段,可用鼠标按住指定的代码片段,并将该代码片段拖入源代码中。

单击库面板顶部的第3个按钮,将会切换到对象库,并切换成图标方式显示,如图1.20所示。对象库就是iOS提供的大量界面控件,通过这些界面控件,用户可以开发出丰富多彩的iOS应用。有关对象库中每个对象的用法,会在后面详细讲解。图1.19 代码片段库

单击库面板顶部的第4个按钮,将会切换到媒体库,如图1.21所示。图1.20 对象库图1.21 媒体库1.6.5 使用帮助

在使用Objective-C开发iOS应用的过程中,不可能记住每个类的功能和用法,也很难记住每个类各自包含的方法。当用到某个类或对该类用法不太确定时,可查看Xcode的帮助系统。查多了,代码写多了,那些常用的类和常用的方法自然就记住了。关于Xcode的帮助系统,有如下3种常用的使用方式。1.使用快速帮助面板

只要在编辑区将光标停留在不知道如何使用的类或函数上,快速帮助面板就会立即显示有关该类或该函数的简要帮助信息。2.利用搜索框

当打开帮助系统之后,也可在页面上方的搜索框中进行搜索。在搜索框中输入关键字(任何类、任何方法、任何函数的部分或全部字符),搜索框下方就会列出该关键字相关的所有文档,如图1.22所示。图1.22 在帮助系统中搜索文档

文档前面的图标为C的是类,图标为M的是方法,图标为P的是协议,图标为f的是函数,不同类型的文档以不同的图标区分。单击搜索框下的文档列表项,即可打开相关的文档,这样就可以看到关于该类、该方法、该函数的详细信息。3.利用编辑区的快速帮助

当在编辑区编写代码时,只要按下Option键,再将光标移动到某个类上,光标就会显示一个问号,此时单击编辑区会弹出如图1.23所示的快速帮助界面。图1.23 编辑区快速帮助1.7使用Xcode

Xcode是iOS应用开发的核心工具,下面以创建开发iOS项目为例详细介绍Xcode工具的界面组成和基本使用。1.7.1 案例:编写第一个Objective-C程序

本节通过一个简单案例介绍如何使用Xcode编写第一个Objective-C程序。具体操作步骤如下:

第1步,启动Xcode,选择File→New→Project命令,或者按Command+Shift+N组合键,Xcode将会打开如图1.24所示的新建项目的对话框。图1.24 新建项目提示:图1.24中对话框将项目分为两类:iOS和OS X,其中,iOS应用就是为手机、平板电脑等移动设备开发应用的,本书将会详细介绍iOS应用的开发。此处需要开发的是在OS X系统运行的程序,因此,在左边选择OS X分类,在右边选择Command Line Tool,这就是人们常说的命令行工具。

第2步,单击对话框底部的Next按钮,打开如图1.25所示的对话框。在此输入项目的名称,如test,其他选项保持默认值,在1.7.2节中将详细介绍。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载