1.1 使用Xcode进行开发

本书假定你使用Xcode开发环境进行编码。Xcode是一个加入苹果开发者计划就可以免费获得的优秀的IDE。它默认支持C、Objective-C、C++、Java以及其他几种语言,不过本书中我们只用它来编写Objective-C程序。

1.1.1 新建项目

首先启动Xcode,你可以选择打开最近打开的项目或者创建一个新项目。为了便于讨论,选择新建一个项目,这样大家就可以跟着练习。之后会弹出一个如图1-1所示的“新建项目”对话框。

图1-1 “新建项目”对话框

在该对话框中,你可以选择创建各种不同类型的项目。从命令行应用到桌面图形应用,你可以找到几乎所有的模板。此外,你如果安装了iPhone SDK,就有多种不同的iPhone和iPad应用的模板。由于目前我们主要关注的是Objective-C,选择其中最简单的一种项目就好了。

  1. 从Mac OS X 组中选择Application后选择Command Line Tool。

  2. 在Type的下拉列表中选择Foundation。

  3. 单击Choose按钮,选择一个保存新项目的位置后单击Finish。

在下面几节中,我们会简要介绍Xcode开发环境,这样你就可以慢慢熟悉它。我们就从 图1-2所示的Xcode窗口开始。

图1-2 主Xcode窗口

主Xcode窗口包括两个面板:左边的面板包含了项目中的所有文件。选择其中的一个文件就会在位于窗口右侧的编辑面板中显示。在Xcode中,可以将项目文件移到项目中的目录中进行分组。大多数情况下,这些组仅仅在开发期间有用,对最后完成的项目影响很小,甚至没有任何影响。

除了源码文件外,还显示了链接项目所需的框架。

在项目文件下方是一系列的智能组。这包括了项目将要生成的目标、搜索结果和断点等。

目标组包括了项目编译生成的各种目标。改变组内对象的设置,就可以重写项目范围的编译设置。在这里还可以为项目添加和编辑一些自定义编译步骤。该组的编译设置如图1-3所示。

图1-3 编译设置

1.1.2 项目文件

在这个简单的项目中,源码文件包含在源码文件组内。目前你可以看到只有一个源码文件,文件名和项目名是一致的。文件的扩展名是.m。单击该文件应该会在Xcode的编辑器面板中显示它,如图1-4所示。

图1-4 Xcode中的编辑器面板

说明

虽然我们只提到一个源码文件,但这里其实还有一个扩展名为.pch的文件。这是预编译头文件,不需要我们编辑或处理,它是编译器自动生成的。

不必担心看不懂文件中的源代码,下一章会介绍Objective-C的基本语法。现在,关键是要理解XCode以及它的工作原理。

说明

如果没有显示源文件,可能就需要拖动Xcode窗口的底部的分割条来显示源码编辑器。

默认项目中包括的其他文件有:文档组(Documentation)中的一个程序文档文件、外部框架和库组(External Frameworks and Libraries)中的项目相关的框架,以及位于产品组(Products)中的可执行文件。现在的可执行文件是红色的,这是因为项目还没有编译出可执行文件。如果单击编译和运行(Build and Run)按钮,就会编译可执行文件、运行它并在控制台窗口中显示输出结果。好好熟悉一下控制台窗口,因为接下来的几章会经常使用它来检查所编写程序的输出结果。

1.1.3 添加源码文件

在项目中新建一个源码文件,你可以选择文件组织面板中的源码文件组,然后单击File ? New File菜单,之后就会弹出一个如图1-5所示的“新建文件”对话框。

图1-5 “新建文件”对话框

本书中需要添加文件时,大多数情况下会使用Cocoa类选项中的Objective-C类模板,所以请熟悉该窗口。

在有些情况下,一个项目中会有多个目标,这样就可能有编译成不同目标的不同源码文件。显式地在当前选择的目标中包含或者不包含一个经过编译的文件,可以单击该文件,然后找到源码面板中的详情视图。小小的目标栏中的复选框处于选中状态,这表示该文件被配置为针对当前目标编译。取消选中后,就不会被编译,如图1-6所示。

图1-6 显示“目标”复选框

说明

如果你看不清详细显示,可以选择View > Zoom Editor Out菜单来显示。

1.1.4 主Xcode窗口

现在有些熟悉Xcode基本的文件管理了吧?接下来我们再看一看主Xcode窗口,这是你使用Xcode时完成大部分工作的地方。主Xcode窗口如图1-7所示。

查看该窗口时,你会看到窗口的左侧是文件浏览器(File Browser)面板,右侧是详细显示面板,或者也可以称为编辑器面板,本书剩余部分将采用这种叫法。选择文件浏览器面板中的文件就可以在右侧的编辑器面板中显示它。此外,编辑器面板有几种不同的模式。详细模式显示了文件浏览器中所选择文件的简要说明。项目查找(Project Find)模式显示一个查找面板,这样就可以在项目的所有文件中查找任意字符串。如果在Xcode中开启了All-In-One布局,那么编辑器面板中就多了一种编译结果模式,这样就可以看到上次编译的结果了。

现在看看文本编辑器窗口上方的小条。这里显示了当前编辑的文件的一些有趣信息。

图1-7 主Xcode窗口

在顶部小条中看到的第一项就是当前编辑文件的文件名和行数。这实际是一个下拉列表,你可以从最近打开的文件列表中单击选择。旁边是另一个下拉列表,显示了当前编辑的文件中方法的函数声明。如果选择其中一个方法,编辑器就会自动跳转到当前文件中该声明的位置。

图1-8显示了一个下拉列表处于展开状态的文件。

图1-8 文件导航下拉列表

说明

你可以通过在代码中使用pragma指令向该下拉列表添加任意的文本。对于该文件中,你可以看到已经有一个界面构建器动作方法的pragma指令。

在文本编辑器和文件浏览器的上方是主工具栏。你可以通过不同的按钮进行配置,但通常采用默认值即可。通过这些按钮可以启动编译、停止当前编译等。

最后,在Xcode窗口的右下角可以看到上次编译的结果。如果编译成功就可以看到Succeeded。如果失败了,可以看到上次编译过程中产生的警告和错误数,黄色图标表示警告,红色图标表示错误。如果最近运行的是静态代码分析器,生成的任何警报都用蓝色图标表示。

目录