1.3 浏览Xcode开发环境
我们在启动Xcode后会看到欢迎界面,这里可以选择以playground开始(Get started with a playground)或者是创建一个新的Xcode项目(Create a new Xcode project),如图1-7所示。
图1-7 Xcode的欢迎界面
实战:快速创建一个全新的Xcode项目。
步骤1:单击Create a new Xcode project向导,在选择项目模板中选择iOS /Application / Single View App,单击Next按钮,如图1-8所示。
图1-8 在选择项目模板中选择Single View App
提示
在模板中还有Game、Master-Detail App、Page-Based App和Tabbed App模板,我们可以根据不同的需求选择不同的模板,除非是创建游戏项目,大部分的开发者都会选择单视图应用程序(Single View App)模板。因为不管是Master-Detail、Page-Based还是Tabbed App模板,都会自动在项目中添加很多代码,而这些代码并不实用。反观Single View App模板,它具有很大的灵活性,可以最大限度地以自定义的方式添加所需要的内容,具体操作方法会在后面详细介绍。
步骤2:在Product Name中需要输入应用程序的名称,这个名字要简单并且最重要的是Cool。这里输入Hello World。Team设置为None。在后面的章节中会讲述如何将App上传到iPhone真机,到时会具体介绍如何设置。
步骤3:Organization Name设置为你公司的名字,如果是个人开发则输入本人的名字即可,比如Liu Ming。
步骤4:Organization Identifier是你的域名的反向,比如你的域名是liuming.cn,这里就需要填写cn.liuming。
步骤5:Language设置为Swift,代表我们使用Swift语言进行项目的开发。
步骤6:在对话框下面还有三个可选框:Core Data是与数据库存储相关;Unit Tests是单元测试相关;UI Tests是用户界面测试相关。在本实例中请不要勾选任何一个选项,如图1-9所示,单击Next按钮。
图1-9 项目设置选项
步骤7:在接下来的对话框中请确定项目保存的位置。这里选择Desktop(桌面),(可以方便我们快速找到它),单击Create按钮。
在项目打开以后,我们就可以看到Xcode所显示的所有不同组件,如图1-10所示。
图1-10 Xcode的工作界面
在界面的顶部是Xcode状态栏,从左侧开始是一个播放(play)按钮,单击它会构建并在模拟器或物理真机上运行项目代码,单击停止(stop)按钮则会终止项目在模拟器或物理真机上的运行。在它们之后的Hello World选项中,我们可以设置在哪个环境里运行应用程序项目。当Mac与iPhone物理真机连接以后,我们就可以在真机上运行,或者手动选择在Xcode模拟器中运行。
当我们选择一种设备版本的模拟器(比如iPhone 7)以后,一旦我们单击Play按钮,就会在macOS上面启动iPhone模拟器,我们可以用鼠标修改它的尺寸。模拟器默认是带曲边的,这意味着可以单击iPhone模拟器左右边缘的仿真按键,实现相应的功能。比如单击Home键可以让iPhone回到主屏幕,或者单击音量键调整播放声音的大小。建议大家去掉模拟器的曲边显示,在菜单中选择Window,然后取消Show Device Bezels的勾选状态。这样,可以将iPhone屏幕设置得更大一些,方便我们进行调试,如图1-11所示。
图1-11 取消iPhone模拟器的曲边效果
状态栏的中间位置是信息显示窗口,比如在结束运行的时候会显示:Finished running(完成运行);构建项目的时候会显示Building进度条。当项目出现错误或警告的时候,还会在窗口的右下角出现相应的图标和错误或警告的数量。
位于信息窗口右侧的一组按钮负责切换编辑器的状态,其中前两个按钮的使用频率非常高。第一个是默认的标准编辑器(Standard Editor),它会将Xcode中间部分的区域设置为一个。
当我们单击第二个有两个圆圈图标的按钮时,Xcode会进入辅助编辑器(Assistant Editor)模式,Xcode中间的部分将被分割为两个区域。我们可以将设计的用户界面放在左侧,代码放在右侧,这样方便进行代码与用户界面元素的关联,在后面的章节会对关联有详细介绍。
单击第三个有两个箭头的按钮,会进入版本编辑器(Version Editor)模式,它允许我们可以看到之前代码的版本。比如你在进行了较多代码修改之后,导致项目无法正常运行,就可以通过它回滚到之前的版本,并且可以进行检查和比较。
在顶部状态栏的最右侧还有三个按钮,在单击它们以后,可以分别显示或隐藏Xcode界面中左侧的导航栏、中下部的调试控制台和右侧的工具栏三个面板。
左侧的导航栏面板由9个分项标签组成,其中使用最频繁的是第一项——项目导航,该导航栏中会显示项目中的所有文件,如图1-12所示。
图1-12 导航栏中的项目导航
导航栏中的第四项是搜索导航,它包含一个搜索条,并且可以设置对整个项目的搜索还是对某个特定文件夹的搜索,如图1-13所示。
图1-13 导航栏中的搜索导航
导航栏中的第五项是错误列表,如果项目中出现代码错误或警告的话,通过该列表可以快速找到出现问题的位置。
例如在ViewController.swift文件中随意输入一些字符,Xcode编译器无法解释它们,因此就会高亮显示这行代码,并且在信息窗口、当前文件窗口右上角和当前错误行报出错误的警示图标和原因。单击信息窗口右下角的错误图标以后,导航栏会自动切换到错误列表,在列表中会显示错误的文件名称和内容,如图1-14所示。
图1-14 导航栏中的错误列表
另一种错误类型是警告(Warning),虽然不会造成代码编译错误,但是在运行的时候可能会出现Bug或造成资源的浪费。
例如下面的这段代码,如图1-15所示。
图1-15 一段警告代码
上面这段代码初始化了一个常量number,但是在之后并没有使用它,造成了资源的浪费。因此Xcode的编译器报警(警告用黄色表示)。
第八项是断点(Dreakpoint)导航,可以方便地创建特殊的例外。在代码窗口中单击某一行代码前面的浅槽(行号的位置),就可以创建断点。断点的样子像一个蓝色的箭头,当应用程序在运行的时候遇到了断点就会暂停,我们可以进行调试、观察变量的值、查看运行的状态等。
在设置好断点以后,当再次单击断点后就会变成亮蓝色,代表断点作用暂时被禁止,使用鼠标将其拖曳出浅槽就可以移除断点,如图1-16所示。
图1-16 在Xcode中设置断点
介绍完左侧的导航栏以后,接下来是Xcode底部的Debug区域。该区域被分割为左右两部分。当应用程序运行崩溃的时候,错误信息会显示在右侧的窗口中。这些信息往往会帮助我们找出Bug的原因。另外在代码中往往会通过打印语句输出一些变量的值或状态信息,而这些内容也会显示在该窗口中。当App运行到断点时,可以通过左侧窗口查看当前程序中变量、对象、结构体的值或状态,如图1-17所示。
图1-17 在Xcode中的Debug区域
当我们在编写代码的时候,一般不会用到Xcode右侧的面板。但是当我们需要设计用户界面的时候,就会对它非常依赖。该面板叫作实用工具面板,如图1-18所示。
图1-18 实用工具面板
实战:制作Hello World的用户界面。
步骤1:在项目导航中选择Main.storyboard文件,此时会打开Interface Builder。
步骤2:在实用工具区域的下半部分中找到对象库(Object Library),通过搜索栏找到Label控件,该控件用于显示各种文本信息,如图1-19所示。
图1-19 对象库中的Label控件
步骤3:将Label控件拖曳至ViewController视图上,双击Label将默认内容修改为Hello World。调整好大小,并将其放置到屏幕中央靠上的位置。
步骤4:选择Label下面的背景视图,在实用工具区域的上半部分找到Attribute Inspect标签,将Background设置为蓝色,如图1-20所示。
图1-20 为视图设置蓝色背景
步骤5:选中Label,同样是在Attribute Inspect的Font部分,将Label的文本字号设置为50。此时你会发现当初的Label尺寸不能满足要求了,可以直接使用鼠标调整其大小,设置Label的Color为白色,最后让其居中,如图1-21所示。
图1-21 为Label设置颜色和字号
构建并运行项目,可以看到我们的第一个项目在模拟器中正常运行了,如图1-22所示。
图1-22 模拟器中运行的Hello World应用
如图1-23所示,为大家展示了Xcode的完整工作界面。
图1-23 Xcode的完整工作界面