《iOS 9应用开发入门经典(第7版)》——第2章,第2.1节使用Xcode

简介:

本节书摘来自异步社区《iOS 9应用开发入门经典(第7版)》一书中的第2章,第2.1节使用Xcode,作者 【美】约翰 雷(John Ray),更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 Xcode和iOS模拟器简介
iOS 9应用开发入门经典(第7版)

本章将介绍:
如何在Xcode中新建项目;
代码编辑和导航功能;
在什么地方给项目添加类和资源;
如何修改项目属性;
针对iOS设备和iOS模拟器编译应用程序;
如何解读错误消息;
iOS模拟器的功能和局限性;
在iOS模拟器中添加新设备。
您将在两个应用程序中完成主要的开发工作:Xcode和iOS模拟器,它们提供了设计、编写、测试iPhone和iPad应用程序所需的所有工具。另外,不同于其他平台,它们是完全免费的。

本章介绍使用Xcode代码编辑工具和iOS模拟器所需的基本知识,并让您获取一些使用它们的经验。Xcode的界面创建工具将在第5章介绍。

2.1 使用Xcode
当您需要编写代码(实际上是输入语句让iOS设备神奇地工作)时,应考虑使用Xcode。Xcode是一种集成开发环境(IDE),让您能够管理应用程序的资源,编辑将不同部分组合起来的代码和用户界面(UI)。

按第1章的说明安装开发工具后,便可在硬盘根目录的文件夹Applications或Launchpad中找到Xcode了。本章介绍Xcode工具的基本用法,如果您还没有安装这些工具,请现在就安装。

启动Xcode。经过一段时间后,将出现如图2.1所示的Welcome to Xcode窗口。


33ea6a525623cf3be9d4933afe0ac28149eb3707

图2.1 在Welcome to Xcode窗口中新建或打开项目

可取消选中复选框Show this window when Xcode launches以禁止显示该窗口。第4章将详细介绍Xcode中的文档系统,它涉及的范围非常广泛。就现在而言,单击左上角的关闭按钮(X)退出欢迎屏幕。

2.1.1 创建和管理项目
大多数开发工作都以创建Xcode项目开始。项目是一系列与应用程序相关联的文件,还包含根据这些文件生成可运行软件所需的设置。这包括图像和源代码,还有一个这样的文件,即它描述了组成用户界面的对象及其外观。

1.选择项目类型
要新建项目,可在Xcode菜单中选择File>New Project(Shift + Command + N)。请现在就这样做,Xcode将要求您为应用程序选择一种模板,如图2.2所示。Xcode模板包含让您快速进行开发所需的文件。

虽然可从空白开始创建应用程序,但使用模板可节省大量时间。在本书中,将根据要创建的应用程序类型使用多种模板。

在New Project窗口的左侧,显示了可供选择的模板类别,我们的重点是类别 iOS Application,因此请确保选择了它。

右侧显示了当前类别中的模板以及当前选定模板的描述。就这里而言,请单击模板Single View Application(单视图应用程序),再单击Next(下一步)按钮。

您选择模板后,Xcode将要求您指定产品名、组织名和公司标识符。产品名就是应用程序的名称;组织名可以随意设置,如您的姓名或公司的名称;公司标识符通常是创建应用程序的组织或个人的域名,但按相反的顺序排列。产品名和公司标识符组成了束标识符,将您的应用程序与其他iOS应用程序区分开来。

例如,在本章中,我们将创建一个名为HelloXcode的应用程序,这是产品名。我的域名是teachyourselfios.com,因此将公司标识符设置为com.teachyourselfios。即便您没有域名,也必须输入点内容,因为这一项必须填写。


02ce7493f5876c00db2d730f8e092beb504096b2

图2.2 要新建项目,首先需要选择合适的模板

将产品名设置为HelloXcode,再提供您选择的组织名和公司标识符。

从下拉列表Language中选择Swift(Apple首选的编程语言),并从下拉列表Device中选择您使用的设备(iPhone或iPad)。不要选中任何复选框,屏幕将类似于图2.3所示。


a5fb0ceb6143e995efba04acc19df78124f0ec2a

图2.3 为应用程序指定产品名、公司名和公司标识符以及开发平台

提示:
您可能想知道这些复选框都是做什么用的。Core Data是一种存储应用程序数据的高级方式,随着应用程序的增大,这些数据可能变得很重要。复选框Include Unit Tests和Include UI Tests指定自动编写测试,用于测试应用程序的功能。随着编写的应用程序越来越大,你可能对这些复选框感兴趣。

这些主题超出了本书的范围,要更深入地了解Core Data和测试工具,您可使用下一章将讨论的Xcode文档系统。
对设置满意后,单击Next按钮。Xcode将要求您指定项目的存储位置。切换到硬盘中合适的文件夹,确保没有选择复选框Source Control,再单击Create(创建)按钮。Xcode将创建一个名称与项目名相同的文件夹,并将所有相关联的模板文件都放到该文件夹中。

提示:
在项目文件夹中,有一个扩展名为.xcodeproj的文件。退出Xcode后,可通过打开该文件来返回到项目工作空间。
2.辨别方向
在Xcode中创建或打开项目后,将出现单个窗口,您将使用它来完成,从编写代码到设计应用程序界面在内的所有工作。如果这是您第一次接触Xcode,令人眼花缭乱的按钮、下拉列表和图标将让您感到恐惧。为让您对这些东西有大致认识,下面首先介绍该界面的主要功能区域,如图2.4所示。


c3fc96731b9e30645d92bd5e943a4d835906a18f

图2.4 首次使用Xcode界面时很容易迷失方向

注意:
默认情况下,Debug和Utility部分被隐藏。要显示它们,可分别单击工具栏中倒数第二个按钮和最后一个按钮。在工具栏的最右端,有三个视图控制按钮,其中第一个用于隐藏/显示导航器。通过阅读本书,您将熟悉每个区域提供的功能。就现在而言,我们将重点放在导航器和编辑器上。

如果该界面的显示情况与您预期的完全不同,可使用Xcode菜单栏中的View菜单来显示工具栏、导航器或其他缺失的部分。
工具栏(Toolbar):显示项目状态,并让您能够轻松地使用常见的功能。
导航器(Navigator):管理文件、编组以及与项目相关的其他信息。
编辑器(Editor):编辑项目内容(代码、界面等)。
实用工具(Utility):让您能够快速访问对象检查器(inspector)、帮助和项目组成部分。
调试(Debug):如果执行期间代码出现了问题或者您生成了调试输出,将在这里显示这些内容。
3.在项目中导航
导航器可在众多不同的模式下运行——从导航项目文件到搜索结果和错误消息。要修改运行模式,可使用导航器上方的图标,其中的文件夹图标显示项目导航器,您在大多数情况下都将在这种模式下运行导航器。

项目导航器显示一个表示项目的顶级图标(它后面有项目名),这是项目编组。您可单击项目组左边的展开箭头将其展开,这将显示组成应用程序的文件和编组。下面来看看几分钟前创建的项目HelloXcode。

在Xcode的项目导航器中,展开项目导航器,您将看到与该应用程序相关联的3个文件夹,图2.5突出显示了它们。


7933b59e372920734a3d76eab77fb0423c841124

图2.5 使用项目导航器浏览项目资源

注意:
您在Xcode中看到的文件夹是逻辑编组。在项目文件夹中并不能找到所有这些文件,也找不到相同的文件夹结构。Xcode布局设计用于帮助您轻松地查找文件,而并非文件系统结构的镜像。
在项目编组中有下面两个子组,它们可能很有用。

Project Code(项目代码):这个文件夹与项目同名,包含类文件的代码以及您加入到项目中的资源。正如您将在下一章学到的,类将互补的应用程序功能组合起来,您的大部分开发工作都将在类文件中进行。
Products(产品):Xcode生成的所有产品(通常是可执行的应用程序)都放在这里。
如果您进一步展开,将发现还有用文件夹图标标识的文件Assets.xcassets,这是一个素材目录,稍后将更深入地介绍。

提示:
如果要添加其他的逻辑文件编组,可使用菜单File>New>Group。如何组织项目由您决定。
利用过滤寻找目标
导航器底部有一个小型工具栏,您可使用它来过滤或调整当前显示的内容。例如,在项目导航器中,可在搜索文本框中输入文本,以便只显示匹配的项目资源(编组或文件)。您还可以使用该文本框左边的闹钟图标,以便只显示最近编辑过的文件。闹钟图标旁边的方框用于显示不受源代码控制的文件;有关源代码控制的更详细信息,请参阅本书的在线附录。

显示的过滤选项随上下文而异,即随导航器当前显示的内容而异。Xcode提供了大量的工具提示,当您遇到新区域和功能时,务必使用工具提示来探索它们。
4.在项目中新增代码文件
虽然Apple iOS应用程序模板提供了不错的开发起点,但您将发现需要在项目中添加其他类文件或界面文件,对高级项目来说尤其如此。要在项目中新增文件,首先选择要在其中添加文件的编组(通常是项目代码编组),再选择菜单File>New或单击导航器左下角的+按钮。Xcode将显示一个与New Project窗口相似的界面,要求您指定要在项目中添加的文件类别和类型,如图2.6所示。如果对示意图中显示的选项不熟悉,请不用担心,本书从头到尾都将提供相应的指南。

能否手工添加空文件?
您可以将现有文件拖放到Xcode编组文件夹中,从而将其复制到项目中。然而,就像项目模板让您能够节省实现时间一样,Xcode文件模板也如此。它们经常包含需要实现的各种功能的骨架。


337e96ddbbb1c9c199c742804f3472b885ad743b

图2.6 使用Xcode在项目中添加文件

5.在项目中添加资源
很多应用程序都需要声音或图像文件,您需要在开发过程中将其集成到项目中。显然,Xcode不能帮助您创建这些文件,因此您需要手工添加它们。为此,只需单击它们并将其拖放到Xcode的项目代码编组中。Xcode将询问您是否要复制文件,请务必选中指定要复制文件的复选框,让Xcode将文件放到项目文件夹的特定位置。

在文件夹Hour 02Projects中,有个Resources文件夹,其中包含文件Test.wav。将该文件拖放项目代码编组中,并指定必要时复制它,如图2.7所示。通过复制文件,可确保它们被正确地放到项目中,让您编写的代码能够访问它们。

提示:
如果您将一个包含多个文件的文件夹拖放到项目中,Xcode默认将自动创建一个包含所有这些文件的编组。


aa1b9b5eb3527fc6237098b08d4296227afa5274

图2.7 将文件Test.wav拖放到项目代码文件夹中,并选择必要时复制它

6.删除文件和资源
如果您在项目中添加了不需要的东西,可轻松地将其删除。要将文件或资源从项目中删除,只需在项目导航器中选择它,再按Delete键即可。Xcode将询问您要删除项目中对该文件的所有引用并将文件移到回收站,还是只想删除对文件的引用,如图2.8所示。


278ecf17bdb3867376f6194bb0e973e18b6015f3

图2.8 删除对文件的引用将保留文件本身

如果您选择只删除对文件的引用,文件本身将保留,但在项目中再也看不到它。

注意:
如果Xcode找不到它认为包含在项目中的文件,将在Xcode界面中用红色标出该文件。如果您在Finder中不小心删除了项目文件夹中的文件,便可能出现这种情况;另外,如果Xcode知道项目将创建某个应用程序文件,但应用程序还未创建它,也将出现这种情况。在后一种情况下,可忽略Products编组中以红色显示的.app文件,而不会有任何问题。
7.使用Xcode素材目录
从Xcode 5起,在管理要在项目中包含的文件方面,Apple提供了一种更好的新方法:素材目录(asset catalog)。素材目录提供了一个中央地点,用于存储和管理项目的所有数据文件;它主要用于存储图像,但也可存储其他数据。

相比于将图像文件夹拖入Xcode,素材目录有两个优点。首先,它提供了清晰的界面,可用于指定Retina图像、非Retina图像和随设备而异的图像;其次,可对素材目录中的图像“切割(sliced)”,这是Apple使用的一个术语,指的是指定图像的一些区域,这些区域在图像放大时将被重复。第7章将使用这项功能。

注意:
素材目录不仅给开发人员提供了帮助,还让Apple能够只提供设备所需的图像:不再在iPhone应用程序中存储iPad图像,反之亦然。这种功能是iOS 9为缩小应用程序的规模而引入的。
(1)新增素材目录

在Xcode中新建的每个项目都包含一个默认素材目录,名为Assets.xcassets。如果您打开的是旧项目,或者需要创建多个素材目录,可新增素材目录。为此,可选择菜单File>New>File,再在New File对话框中依次选择Resource和Asset Catalog,如图2.9所示。

![image](https://yqfile.alicdn.com/090bd508d7e00c1ea3af40e80310d8350c2d566f.png" >

相关文章
|
1月前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
180 60
|
1月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
2月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
75 3
|
1月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
1月前
|
Android开发 Swift iOS开发
探索iOS与安卓应用开发的差异性
探索iOS与安卓应用开发的差异性
49 2
|
2月前
|
Java Android开发 Swift
掌握安卓与iOS应用开发:技术比较与选择指南
在移动应用开发领域,谷歌的安卓和苹果的iOS系统无疑是两大巨头。它们不仅塑造了智能手机市场,还影响了开发者的日常决策。本文深入探讨了安卓与iOS平台的技术差异、开发环境及工具、以及市场表现和用户基础。通过对比分析,旨在为开发者提供实用的指导,帮助他们根据项目需求、预算限制和性能要求,做出最合适的平台选择。无论是追求高度定制的用户体验,还是期望快速进入市场,本文都将为您的开发旅程提供有价值的见解。
|
2月前
|
物联网 vr&ar Android开发
掌握安卓与iOS应用开发:核心技术与未来趋势
本文深入探讨了安卓和iOS应用开发的核心技术,包括开发环境、主要编程语言、常用框架以及性能优化技巧。同时,文章还展望了两大平台未来的发展趋势,如人工智能、增强现实和物联网的集成,为开发者提供全面的技术参考和发展指引。
|
2月前
|
安全 Android开发 iOS开发
深入解析:安卓与iOS的系统架构及其对应用开发的影响
本文旨在探讨安卓与iOS两大主流操作系统的架构差异,并分析这些差异如何影响应用开发的策略和实践。通过对比两者的设计哲学、安全机制、开发环境及性能优化等方面,本文揭示了各自的特点和优势,为开发者在选择平台和制定开发计划时提供参考依据。
67 4
|
1月前
|
开发工具 Android开发 Swift
探索iOS与安卓应用开发的异同点
【10月更文挑战第24天】本文通过比较iOS和安卓开发环境,旨在揭示两大移动平台在开发过程中的相似性与差异性。我们将探讨开发工具、编程语言、用户界面设计、性能优化及市场分布等方面,以期为开发者提供全面的视角。通过深入浅出的分析,文章将帮助读者更好地理解每个平台的独特之处及其对应用开发的影响。
|
3月前
|
iOS开发 开发者 UED
探索iOS应用开发中的SwiftUI框架
【9月更文挑战第26天】 在iOS开发的海洋中,SwiftUI犹如一艘现代的快艇,引领着开发者们驶向更加高效与直观的编程体验。本文将带你领略SwiftUI的魅力,从其设计理念到实际应用,我们将一步步揭开它如何简化界面构建过程的面纱。通过对比传统方式,你将看到SwiftUI如何让代码变得像诗一样优美,同时保持强大的功能性和灵活性。准备好让你的iOS开发技能加速升级,一起驾驭这股新潮流吧!