《iOS 8开发指南(第2版)》——第1章,第1.4节使用Xcode开发环境

简介:

本节书摘来自异步社区《iOS 8开发指南(第2版)》一书中的第1章,第1.1节1.4 使用Xcode开发环境,作者 管蕾,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 使用Xcode开发环境
iOS 8开发指南(第2版)
经过本章第1.3节中的内容讲解之后,在接下来开始讲解使用Xcode开发环境的基本知识,为读者步入后面Objective-C知识的学习打下坚实的基础。

1.4.1 使用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。

1.4.2 Xcode的基本功能

1.改变公司名称
通过Xcode编写代码,代码的头部会有类似于图1-17所示的内容。


098c18429624dec4bee0c2b87af0e4c3056bf8f9

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


5e504439b67b74b6e430aecb6387c5a554c649f9

2.通过搜索框缩小文件范围
当项目开发到一段时间后,源代码文件会越来越多。再从Groups & Files的界面去选择效率比较差。可以借助Xcode的浏览器窗口,如图1-21所示。


f01b5c6467f8e3e775c70024d6fbc2de4473c566

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


b25cdbd87ff170649eda1cb3be07aa8d1fe03220

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

4.缩进代码
有的时候代码需要缩进,有的时候又要做相反的操作。单行缩进和其他编辑器类似,只需使用Tab键即可。如果选中多行则需要使用快捷键,其中“Command+]”表示缩进、“Command+[”表示反向缩进。

5.代码的自动完成
使用IDE工具的一大好处是,工具能够帮助我们自动完成比较冗长的类型名称。Xcode提供了这方面的功能。比如下面的的输出日志:

NSLog(@"book author: %@",book.author);
如果都自己输入会很麻烦,可以先输入ns,然后使用快捷键“Ctrl+.”,会自动出现如下代码:

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

NSString
此时后面的ing会自动出现,如果和预想的一样,只需直接按Tab键确认即可。也许你想输入的是NSStream,那么可以继续输入。另外也可按Esc键,这时就会出现结果列表供选择,如图1-25所示。


71d58c87ecfdd975b68a8948507580d297a1a29e

我们可以使用Tab键确认方法中的内容,或者通过快捷键“Ctrl+/”在方法中的参数间来回切换。

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


7f2c1f74e4f4353aa00ae3e00dc140382226bbed

也可以实现更复杂的查找,比如是否大小写敏感、是否使用正则表达式等。设置界面如图1-28所示。


5e6aed1264a0340c461855ac4bbced6ae637c2fc

另外,也可以单击按钮进行全部替代,或查找一个替换一个等。如果需要在整个项目内查找和替换,则依次单击“Edit”→“Find”→“Find in Project…”命令,如图1-31所示。


7b66132d6317cd86f21a8d24b946adcf5bbf8b11

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

7.快速定位到代码行
如果想定位光标到选中文件的行上,可以使用快捷键“Command+L”来实现;也可以依次单击“Edit”→“Go to Line”命令实现,如图1-33所示。


aa1d2ff19a692e51338a019d720f885e3049f3eb

8.快速打开文件
有时候需要快速打开头文件,例如图1-35所示的界面。要想知道这里的文件Cocoa.h到底是什么内容,可以用鼠标光标选中文件Cocoa.h来实现。


5d3ef41217a63d25c798f955c4d6070a16fa5adc

依次单击“File”→“Open Quickly…”命令,如图1-36所示。


d20621d9456114e8b23c72742f20cc5c23d54d46

9.使用书签
使用Eclipse的用户会经常用到TODO标签,比如正在编写代码的时候需要做其他事情,或者提醒自己以后再实现的功能时,可以写一个TODO注释,这样可以在Eclipse的视图中找到,方便以后找到这个代码并修改。其实Xcode也有类似的功能,比如存在一段如图1-39所示的代码。


730332df31c226f653f1874496464a3eff208984

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


923e2a87ee123e63e5a7c527d11217244f8900bb

10.自定义导航条
在代码窗口上边有一个工具条,此工具条提供了很多方便的导航功能,例如图1-43所示的功能。


89ddfdaf9c48e1be34c5f19614fb1474e7a72c36

也可以用来实现上面TODO的需求。这里有两种自定义导航条的写法,其中下面是标准写法:

#pragma mark
而下面是Xcode兼容的格式:

// TODO: xxx
// FIXME: xxx

完整的代码如图1-44所示。


efe38279ac0741a5ae9501de27a298df94eca22b

11.使用Xcode帮助
如果想快速查看官方API文档,可以在源代码中按下“Option”键并双击该类型(函数、变量等),如图1-46所示的是NSString的API文档对话框。


0fe0f5a783176562763d850bd961b3b548473336

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

设置断点的方法非常简单,比如想对红框表示的行设置断点,就单击该行左侧红圈位置,如图1-48所示。


da56cb1b202315b785e2fdf61591695b77114e2e

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


ee4c9f7dac59c197a0171ac24873178995b928f4

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

Continue:继续执行程序。
step over、step into、step out:用于单步调试,具体说明如下。

step over:将执行当前方法内的下一个语句。
step into:如果当前语句是方法调用,将单步执行当前语句调用方法内部第一行。
step out:将跳出当前语句所在方法,到方法外的第一行。
通过调试工具,可以对应用做全面和细致的调试。

相关文章
|
2月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
133 2
|
2月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境对比分析
在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统无疑是主角。它们各自拥有独特的特点和优势,为开发者提供了不同的开发环境和工具。本文将深入浅出地探讨安卓和iOS开发环境的主要差异,包括开发工具、编程语言、用户界面设计、性能优化以及市场覆盖等方面,旨在帮助初学者更好地理解两大平台的开发特点,并为他们选择合适的开发路径提供参考。通过比较分析,我们将揭示不同环境下的开发实践,以及如何根据项目需求和目标受众来选择最合适的开发平台。
45 2
|
25天前
|
开发工具 Android开发 iOS开发
深入解析安卓与iOS开发环境的优劣
【10月更文挑战第4天】 本文将深入探讨安卓和iOS两大主流移动操作系统的开发环境,从技术架构、开发工具、用户体验等方面进行详细比较。通过分析各自的优势和不足,帮助开发者更好地理解这两个平台的异同,从而为项目选择最合适的开发平台提供参考。
18 3
|
21天前
|
开发工具 Android开发 Swift
安卓与iOS开发环境的差异性分析
【10月更文挑战第8天】 本文旨在探讨Android和iOS两大移动操作系统在开发环境上的不同,包括开发语言、工具、平台特性等方面。通过对这些差异性的分析,帮助开发者更好地理解两大平台,以便在项目开发中做出更合适的技术选择。
|
29天前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境深度对比
【10月更文挑战第1天】本文旨在探讨和分析安卓(Android)与苹果(iOS)两大主流移动操作系统在应用开发环境上的不同点。通过比较它们的开发工具、语言、用户体验设计、市场策略及生态系统,本文将为开发者提供一份详尽的参考指南,帮助他们做出更合适的开发平台选择。此外,文章还将探讨两大平台未来的发展趋势,以及这些趋势可能对开发者和用户产生的影响。
43 0
|
2月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
52 3
|
2月前
|
移动开发 Android开发 Swift
安卓与iOS开发环境对比:选择合适的平台
在数字时代的浪潮中,移动应用开发成为技术前沿的热门领域。两大主流操作系统——安卓和iOS,各自拥有独特的开发环境与生态。本文将深入探讨这两种平台的开发特点,帮助开发者根据自己的需求和资源选择最合适的开发路径。从工具支持到用户群体,从编程语言到市场分布,我们将一一剖析,为即将踏上移动开发之旅的朋友们提供一盏明灯。
|
2月前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境对比:选择适合你的平台
【9月更文挑战第26天】在移动应用开发的广阔天地中,安卓和iOS是两大巨头。它们各自拥有独特的优势和挑战,影响着开发者的选择和决策。本文将深入探讨这两个平台的开发环境,帮助你理解它们的核心差异,并指导你根据个人或项目需求做出明智的选择。无论你是初学者还是资深开发者,了解这些平台的异同都至关重要。让我们一起探索,找到最适合你的那片开发天地。
|
2月前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析
本文将探讨安卓和iOS这两大移动操作系统在开发环境上的差异,从工具、语言、框架到生态系统等多个角度进行比较。我们将深入了解各自的优势和劣势,并尝试为开发者提供一些实用的建议,以帮助他们根据自己的需求选择最适合的开发平台。
40 1
|
2月前
|
移动开发 IDE Android开发
安卓与iOS开发环境的深度剖析
本文将深入探讨安卓(Android)和iOS两大主流移动操作系统的开发环境,从技术架构、开发语言、工具链、生态系统等多个维度进行对比分析。我们将揭示两者在应用开发过程中的异同点,为开发者提供选择平台时的技术参考,同时展望移动开发领域的未来趋势。通过综合比较,本文旨在呈现一个全面、立体的开发环境画像,助力开发者更好地理解并适应不断变化的移动技术生态。
55 0