Mac软件开发Xcode帮助中文版.docx
《Mac软件开发Xcode帮助中文版.docx》由会员分享,可在线阅读,更多相关《Mac软件开发Xcode帮助中文版.docx(68页珍藏版)》请在冰豆网上搜索。
Mac软件开发Xcode帮助中文版
Xcode帮助
关于Xcode
本篇文档将为您介绍Xcode,苹果公司最新的集成开发环境,用于开发MacOSX软件。
Xcode为用户提供了一个强大的界面允许用户使用许多基于工业标准的开放源代码工具,包括GCC,javac,jikes和GDB。
Xcode还提供了模板帮助开发人员创建应用程序,框架,共享库,plug-ins,java应用程序和小应用程序,以及命令行工具等等。
Xcode支持Cocoa和Carbon开发,允许使用C,C++,Objective-C以及Java等编程语言。
重要
本篇文档是Xcode测试版本的一个初步介绍。
尽管已经做过技术方面的校对,但是这篇文章并不是最终的版本。
本篇文档可能会包含一些不正确的或者在将来要修改的内容。
Xcode的优势
Xcode在设计的时候就已经了考虑了几个目标:
∙易于使用。
Xcode提供了一个全新的流线型的用户界面来帮助您组织和访问您的软件工程中的所有的组成部分。
例如,工程窗口允许您从一个单一的位置访问所有的您的工程内容还有数据。
在工程窗口中您可以方便的使用快速搜索,使得您查找信息更加方便快捷。
智能分组帮助您聪明的过滤和组织您工程的内容和数据。
您可以在查看信息面板中检查并编辑工程里的对象。
∙性能。
一些新的功能提高了编译生成的速度并且缩短了每次修改错误的时间周期。
“修改然后继续“的调试方式允许您修改您的源代码,编译,然后就在您上次离开的地方继续调试。
使用零链接(Zerolink),您可以在开发的阶段跳过链接的步骤。
分布式编译允许您利用您的网络中的其它机器的处理器资源来编译生成您的产品。
∙工业标准的工具。
Xcode使用与开放源代码社会以及决大多数其它的Unix操作系统所使用的完全相同的基于工业标准的工具。
例如,当您编译C,C++,或者Objecttive-C源代码的时候,您使用GNU编译器,GCC。
当您编译Java源代码的时候,您使用Sun公司的javac或者IBM公司的jikes编译器。
当您调试您的代码的时候,您使用GNU调试器,GDB,它是Xcode的源代码级别调试器的基础。
∙全面访问和操作工具。
例如,您可以在目标的检视窗口中图象化的设置绝大多数常用的编译器选项。
您可以通过简单的点按按钮或者选择菜单命令完成绝大多数常用的调试命令。
如果您还有特殊的需求,您可以在调试器终端面板中直接输入命令行指令。
∙自定义编译流程。
Xcode允许您根据自己的需要去修改标准的编译流程,您可以添加您自己的步骤到定义好的标准样板步骤中去。
例如,您可以添加一个步骤完成复制文件到应用程序包或者其它的一个目录中去。
您可以拷贝一个Read-Me文件到一个文档的文件夹,或者您可以拷贝一个framework(框架)到用户域的Library目录中。
您还可以定义一个步骤来加入任何在命令行终端窗口中可执行的命令。
您可以使用那些在Xcode中没有界面的工具去处理一个文件,当编译完成后给您自己发一封email,或者使用FTP把您的结果备份到服务器上去。
Xcode的功能
Xcode具有一个全面的开发环境所应具备的所有的能力。
您可以编辑您的源代码和您的工程,查看文档,在面对对象的代码中浏览类,实现源代码控制,并且使用源代码级别的调试器调试您的软件产品。
∙编辑源代码。
当您编辑您的源代码的时候,您需要一些特殊的功能,而这些功能是普通字处理软件所不具备的。
Xcode编辑器支持这些先进的功能。
使用代码预见(codesense)功能,当您在键入的时候编辑器会向您推荐合适的函数名称,方法名称,和对应于现在的上下文的参数。
语法颜色标识帮助您找出关键字和注释。
自动缩进根据您的代码所处位置的深度自动缩进代码。
还有位于每一个编辑窗口顶部的函数弹出式菜单能方便您快速在函数间切换位置。
∙编辑一个工程。
当您能够在您的工程中按照您的设计去组织管理文件的时候,您就会快速找到这些文件。
在工程的”组和文件“列表中,您可以把文件按照任何顺序存放。
您可以按照您理解或者需要把文件分组,而不是按照它们在磁盘上存放的位置去分组。
∙查看文档。
快速访问文档能够帮助您在不停止工作的情况下找到问题的答案。
当您在编辑代码的时候,按住Option键双击任何符号的名称去查看它们的参考文档。
任何时候当您在类浏览器里看到一个书本的图标时,您可以点击它显示更多信息。
您可以查看任何命令行工具的使用帮助文档,并且浏览这些Xcode使用的工具的完整的文档。
您也可以使用问题或者短语搜索文档,比如说”我怎样才能创建一个表单?
“。
所有的这些功能您都可以不离开Xcode而使用。
∙浏览类。
当您使用一个面对对象的API比如Cocoa或者Java开发的时候,查看一个类是怎么从另外一个类继承的能够帮助您理解它们是怎样一起工作的。
类浏览器帮助您检查这些继承关系。
您可以看到类之间的继承关系,查看一个类里面定义的成员,甚至查看一个类继承和定义的成员的完整列表。
∙使用源代码控制。
Xcode对于CVS和Preforce源代码控制系统提供集成的支持。
如果您的源代码在一个CVS或者Preforce资料库里,您可以在Xcode里完成绝大多数的日常的任务。
您可以保存修改的的内容到资料库中去,取出文件的更新版本,比较文件版本,添加文件到资料库。
∙源文件级调试。
当您需要在您的代码里修改一个错误的时候,一个好的源文件级的调试器非常重要。
Xcode的调试器允许您在图形界面里设置断点,单步执行整个代码,并且查看和修改变量。
在调试器的底层使用了GDB,它是GNU组织的开放源代码调试器。
如果您需要使用那些在图形界面里没有提供的功能,使用Xcode调试器的控制台窗口直接输入GDB的命令。
∙从命令行编译生成。
pbbuild命令行工具帮助您在终端命令行窗口中编译工程。
当您需要同时编译几个工程并且您想要使用shell脚本语言来自动完成整个进程时,这个工具非常有用。
这个命令行工具甚至还能够在不编辑一个工程的情况下帮助您覆盖一些工程的编译设置。
工程
使用Xcode组织管理软件开发的基础就是工程。
工程包含所有编译生成您的产品的元素以及维护这些元素直接的关系。
您可以把它想象成一个包含所有制造一个或者多个产品的零件的工具箱,再加上怎样去制造产品的指导。
一个工程给您一个方便去查找每一个文件的地方以及与您的工作相关的信息。
请参考以下章节:
关于工程
工程窗口
管理工程
关于工程
工程管理编译生成您的产品所必需的所有的信息。
它包括源文件,编译信息,执行代码设置,还有更多。
工程里主要的组件是:
1.文件。
您的产品就是从您的工程的文件上编译生成的。
这些文件可以是源代码文件,共享库,frameworks,资源文件,和任何其它包含创建和编译您的产品所需要的信息的文件。
这些文件也可以是辅助文件,例如那些您想要在编辑时查看的注释或者图解。
2.目标。
目标包含所有为了处理您的所有文件来最后生成最终的产品的指令。
一个目标定义了产品是什么,需要哪些资源文件来编译生成它,对那些文件执行什么操作,和给那些执行这些操作的工具传递什么选项。
要得到关于目标的更多信息,请参考“目标”。
3.产品。
产品是您完成的工作。
对于每一个目标,都有一个产品
工程窗口
工程窗口是您在Xcode里主要的工作地点。
工程窗口显示和组织您的源代码文件,目标,和执行代码。
它允许您存取和编辑您工程里的所有的部分。
下图显示了一个典型的工程窗口。
工程窗口
工程窗口的组成部分有:
∙工具栏方便您快速访问Xcode最常用的命令。
∙状态栏显示工程的状态消息。
在上面的例子中,状态栏显示了在工程窗口里选择的项目的数目。
∙组和文件列表组织在您的工程里所有的文件,目录,和目标。
您可以在组和文件列表里移动文件和目录并且组织您的工程内容。
在组和文件列表里当前的选择控制了在细节信息窗口里显示的内容。
∙细节信息窗口显示在组和文件列表里选择的一个或者多个项目。
您可以使用搜索输入框搜索细节信息窗口的内容或者按照列排序细节信息窗口里的内容。
细节信息窗口帮助您快速查找和访问您的工程的内容。
要查看您的工程里一个项目更多的信息,例如一个文件,目标,或者组,打开它们的检视窗口。
通过使用检视窗口,您可以检查和编辑您工程的组件。
接下来的章节将更详细的介绍工程窗口的功能。
本节将介绍:
工程窗口工具栏
组和文件列表
细节信息窗口
检视窗口
工程窗口工具栏
工程窗口工具栏,如下图所示,方便您快速访问Xcode最常用的命令。
工程窗口工具栏
缺省情况下,工具栏包含以下项目:
∙目标弹出式菜单。
这个菜单显示活跃目标,任何时候您编译生成,运行,或者调试您的工程时您就会使用这个目标。
您可以使用这个菜单改变活跃目标。
∙编译生成按钮。
这些按钮开始一些常用的编译生成动作,比如说编译,清除,和运行。
在编译生成按钮的底部的三角符号表示每个按钮有多个动作。
在一个编译生成按钮上单击会执行按钮图标代表的动作。
如果您点击一个编译生成按钮并且按住一会鼠标按钮,您会打开一个下拉菜单,里面是所有与这个按钮有关的动作。
您可以选择其中的动作来执行它。
∙任务按钮。
任务按钮允许您停止当前在您的工程里执行的任何操作。
例如,如果您当前在执行一个编译生成和一个搜索,您可以点击然后按住任务按钮一会来停止其中任意一个操作。
Xcode会显示一个当前正在执行的任务的弹出列表,选择其中一个任务来停止它。
∙编辑器按钮在您的工程里显示或者隐藏编辑器窗口。
∙查找按钮打开一个Xcode查找面板窗口。
您可以使用这个面板窗口在您的工程里搜索文本,符号定义,或者常用表达式。
面板窗口在“查找面板窗口”里有更详细的介绍。
∙信息按钮显示一个检视窗口,允许您检查和编辑您工程里的组,文件,和目标。
请参考“检视窗口”获得更多有关在工程里检视项目的信息。
∙搜索输入框。
这个输入框允许您搜索当前在细节信息窗口里显示的项目。
随着您的输入,在细节信息窗口里项目的列表会缩小范围到只剩下在一个可见的列里与搜索内容匹配的项目。
您可以使用View>CustomizeToolbar(自定义工具栏)菜单命令来自定义工程窗口工具栏。
您也可以自定义任何一个多项目按钮,就是在按钮底部有一个下箭头图标的那些按钮。
要自定义一个多项目按钮,使用View>CustomizeToolbar菜单命令然后在显示的对话框里拖拽按钮到工程窗口工具栏里。
双击按钮打开自定义多项目按钮对话框。
组和文件列表
组和文件列表显示您工程里的文件,目录,目标,和执行代码。
这些文件,目录,目标,和执行代码使用组来管理。
一个组帮助您把相关的文件或者信息收集在一起。
有几种组的类型:
∙源文件组管理您工程的源文件,包括实现文件,资源文件,frameworks,头文件,以及其它的文件。
一个组,显示为一个目录的图标,可以包含任意数量的文件和其它源文件组。
源文件组帮助您在工程里把文件组织成为更加容易管理的组。
工程组,在组和文件列表的顶部用一个工程的图标代表,是一个包含您的工程里所有文件,frameworks,和共享库的源文件组。
∙目标组包含您工程里所有的目标。
每一个目标列出所有用来创建与这个目标相关联的特定产品的文件。
就象我们在前面提到了一样,一个目标定义了创建相关的产品所必需的指令。
每一个目标都有一个相关的命令集,设置,以及选项,它们一起构成了这些指令。
您可以通过检视一个目标来查看这些指令,请参考“目标”。
∙执行代码组包含所有在您的工程里定义的执行代码。
∙智能组由一些符合一个特定的规则或者模式的文件或者信息组成。
Xcode提供了几个内建的智能组:
o错误和警告智能组列出在您编译生成您的工程的时候产生的错误和警告。
这个组在“查看错误和警告”里有更详细的介绍。
o实现文件智能组包含您工程里的所有的实现文件,例如那些以.c,.cpp,和.m文件名结尾的文件。
oNIB文件智能组包含任何用来创建您的产品的用户界面的.nib文件。
o查找结果智能组包含您在工程里每一次搜索的结果。
每一次搜索都会在这个智能组里创建一个新的项目。
要得到有关查找结果智能组更多的信息,请参考“查看搜索结果”。
o工程符号智能组列出在您的工程里定义的所有的符号。
这个智能组在“在您的工程里查看符号”里有更深入的介绍。
您可以在组和文件列表里点击组旁边的三角展开符号来查看任何组的内容。
当您点击了三角展开符号之后,组的内容会以概览的方式显示,如下图所示。
工程的概览
在大的工程里,组和文件列表可能会很长,这使得移动项目非常困难;您可以通过点击分拆按钮来分拆组和文件窗口。
每一个组和文件列表窗口可以显示不同的位置,这样就可以把一些常用的组放在手边,并且很方便在组之间移动项目。
您可以在组和文件列表里选择一个项目来查看这个项目的更多信息。
当您在组和文件列表里选择一个项目之后,这个项目的信息会在工程窗口右边的细节信息窗口里显示。
细节信息窗口
前面曾经提到过,当您在组和文件列表里选择了一个或者多个项目后,细节信息窗口会显示这些项目更多的信息。
您可以通过在组和文件列表里的选择来控制在细节信息窗口里显示内容的范围。
如果选择的项目是一个组,细节信息窗口里将会显示这个组里面所有成员的信息。
您可以在组和文件列表里选择多个项目,细节信息窗口里就会显示所有选择的项目以及它们的成员。
基于您在组和文件列表里选择的项目的不同,在细节信息窗口里显示的信息的类型也会改变。
例如,如果您在组和文件列表里选择了一个源文件的组,细节信息窗口里显示在这个组里的每一个文件,以及这些文件的信息,比如说文件的编译状态或者代码的尺寸。
然而,编译状态和代码的尺寸对于错误和警告来说没有任何意义,所以当您选择了错误和警告组之后,您可以看到一个错误和警告消息的列表以及错误和警告发生的位置。
您可以排序和搜索在细节信息窗口里显示的项目。
要按照一个特定的信息类型来排序,点击相应的列标题。
例如,要按照文件名排序,在文件名标题里点击。
要搜索匹配一个关键字或者字符串的项目,使用工程窗口工具栏里的搜索输入框。
在您输入的同时,细节信息窗口里的内容会缩小范围到只剩下至少在一列里与搜索内容匹配的项目。
您可以在任何列的标题里按住control键点击来指定在细节信息窗口里显示哪些信息。
Xcode会象下图里显示的一样打开一个上下文菜单,您可以为您当前选择的项目选择一个合适的信息分类,或者关闭不需要的信息。
在细节信息窗口里选择要显示的信息类型
您可以按照任何顺序显示细节信息窗口的列。
要重新给列排序,直接拖拽任何列的标题到一个新的位置。
检视窗口
当您在工程窗口工具栏里点击信息按钮后,Xcode会打开一个检视窗口显示在工程窗口里选择的项目的信息。
您可以检视文件,目标,组,或者工程本身。
基于您检视的项目的类型,在检视窗口里显示的信息的类型会随之改变。
例如,下面是一个工程的检视窗口:
一个检视窗口
当您在工程窗口里选择不同的文件,目标,和组的时候,检视窗口会为显示相应的内容而改变。
您可以再一次点击信息按钮来关闭检视窗口。
管理工程
本节将介绍:
创建一个新工程
导入一个工程
打开和关闭工程
创建一个新工程
要创建一个新工程:
∙使用File>NewProject(新建工程)。
Xcode为您显示新建工程助理。
助理的第一页显示了整个工程模板的列表。
绝大多数工程模板已经包含了最基本的源代码文件以及资源文件,您可以直接编译生成一个可运行的产品。
您可以在这个列表里选择一个工程模板,或者您也可以选择一个空的工程来创建一个不包含任何内容的新的工程。
当您在这个列表里选择了一个模板之后,在模板列表下面的文本区里会马上显示这个模板的简要的描述。
如果您看不到文本区,往上拖拽模板列表下面的改变大小的控件直到看到文本区为止。
在您选择了一个工程的类型之后点击Next按钮,Xcode显示新工程助理的第二页。
在这页里您可以给新工程命名以及给工程目录选择一个路径。
当您点击Finish按钮后,Xcode为这个类型复制模板然后创建工程。
导入一个工程
要导入一个已经存在的确Xcode或者CodeWarrior工程到Xcode中:
∙使用File>ImportProject(导入工程)菜单命令。
Xcode会显示一个助理列出所有您可以导入的的工程的类型。
选择要导入的工程的类型然后点击Next按钮。
导入助理依据不同类型的工程需要不同的信息。
当您输入了要求的信息之后,点击Finish按钮。
一个新的Xcode工程文件会在原来工程文件相同的位置被创建。
要了解更多关于导入CodeWarrior工程的信息,请参考“把CodeWarrior工程移到Xcode中”。
打开和关闭工程
要打开任何工程,使用File>Open菜单命令。
要打开您最近使用的一个工程,在File>RecentProjects菜单里选择这个工程。
要关闭一个工程,使用File>CloseProject菜单命令,或者您可以设置Xcode在您关闭工程窗口的时候关闭整个工程。
要在您关闭工程窗口的时候关闭整个工程:
∙使用Xcode>Preferences菜单命令,点击General,然后选择ClosingProjectWindowclosesentireproject(关闭工程窗口时关闭整个工程)选项。
如果这个选项是关闭的,只有当工程的所有的窗口关闭后工程才会被关闭或者您使用File>CloseProject菜单命令。
如果这个选项是打开的,在您关闭工程窗口的时候关闭整个工程。
要在您打开一个工程的时候恢复所有的工程的窗口:
∙使用Xcode>Preferences菜单命令,点击General,然后选择Saveprojectwindowstateswhenclosing(关闭工程时保存工程窗口的状态)选项。
如果这个选项是关闭的,打开工程后只显示工程窗口。
如果这个选项是打开的,打开工程会恢复当您上次关闭工程时所有打开的窗口。
管理组与文件
在一个典型的工程里,您会包含许多不同类型的文件和目录。
您可以创建组来管理和操作您的工程里的文件。
本章将会介绍怎样添加文件,创建组,以及在工程里浏览文件和目录。
请参考以下章节:
一个工程里的文件
文件是怎样被引用的
添加文件,Frameworks和目录到您的工程里
使用组来组织文件
查看源代码组和文件
检视文件属性
一个工程里的文件
要想大概了解在您的工程里会找到那些内容,我们先来看一个简单的应用程序的工程的例子。
在下面图示里的工程窗口里的工程编译生成一个小的C++应用程序。
这个工程在组和文件列表里已经被展开显示它的概要内容。
当然,您要注意工程里的内容会依据工程的类型和它们生成的产品的类型的不同而改变。
组和文件列表里面的工程内容
ScrollView工程例子包含以下项目:
∙源代码组包含实现文件;在这个例子里是.c和.cp文件。
∙头文件组包含整个工程的头文件。
∙资源数据组包含整个应用程序的资源文件。
包括.nib文件,它定义了应用程序的用户界面和在应用程序界面里使用的图片。
∙外部Frameworks和共享库组包含了一个framework和引用,它定义了应用程序代码里使用的系统接口。
您可以在组和文件列表里打开一个framework来查看这个framework里的头文件。
∙产品组包含了当工程的目标被编译时所创建的产品的引用。
一个产品引用允许您在组和文件列表里直接查看您的目标的产品。
尽管一个产品的引用为您创建的每一个新的目标自动创建,产品的引用在您编译生成那个目标之前是不会指向任何东西的。
文件是怎样被引用的
一个工程为每一个文件保存与它相关的位置或者路径信息。
路径可以一文件所在的磁盘名字(根路径)开始,后者它也可以是另外一个目录的相对路径。
您可以为每一个特定的文件,framework,或者目录指定引用的方法,这在把它们加入到工程中时选择。
如果一个文件在您的工程目录里或者它的编译生成目录里,使用以下的这些引用风格:
∙组相对。
路径是与相关的文件组的目录相对的。
如果文件不在一个组里面或者这个组没有相关的目录,路径与工程的目录相对。
这个是在您的工程目录里的文件的缺省设置。
∙工程相对。
路径是与工程目录相对的,与文件是否在一个组里面或者组有没有一个相关的目录是无关的。
∙编译生成产品相对。
路径与包含工程编译生成的产品的目录是相对的。
这个引用的风格是给那些一个工程目标创建的项目使用的。
如果一个文件在您的工程目录之外,使用下面一种引用风格:
∙搜索路径。
Xcode在目标的搜索路径里搜索这个文件,搜索路径是一些常用的共享库和frameworks目录的列表。
这个是在您的工程目录之外的文件的缺省设置。
您可以在Xcode预置里的SourceTrees面板窗口里添加一个您的工程的搜索路径,或者您可以在目标检视窗口里的Build面板窗口里给一个单独的目标添加一个搜索路径。
要得到更多信息,请参考“编译生成设置”。
路径是按照它们显示的顺序被搜索的。
如果一个文件出现在搜索路径里的两个目录中,Xcode使用列在列表前面的目录里的版本。
∙绝对路径。
路径从根目录(/)开始是绝对的。
这对于您想在工程里始终使用同一个版本的文件是非常有用的。
例如,您从System/Libraries里给您的工程加入了一个framework,但是后来该framework的另一个版本被加入到Local/Libraries文件夹。
如果您使用一个搜索路径引用风格,Xcode会使用在Local/Libraries里的版本,因为Local/Libraries在搜索路径里出现在System/Libraries的前面。
如果您使用一个绝对路径,Xcode会一直使用您添加的版本,也就是System/Libraries里面的版本。
添加文件,Frameworks和目录到您的工程里
如果您使用一个工程的模板创建了一个新的工程,后者您转换了一个已经存在的工程,您的工程就已经包含了一些组和文件,以及frameworks,文件夹,和产品引用。
不管您的工程是否已经包含了文件或者创建的时候完全是空的,您都很可能要不定时的给您的工程添加一些文件或者frameworks。
本节将介绍:
添加文件和目录
添加framework
删除文件
添加文件和目录
要添加一些文件到您的工程里,您可以使用以下任何一种方法:
∙在工程窗口里的组和文件列表里,选中要添加文件的组,然后使用Project>AddFiles(添加文件)菜单命令。
在出现的对话框里浏览查找到要加入的文件然后选择这些文件。
如果您想要加入一个文件夹里的所有的文件,您可以直接选择这个文件夹。
∙在Finder里直接拖拽文件或者文件夹到工程窗口的组和文件列表里。
会有一条指示线告诉您这些文件将被添加到什么位置。
当您选择了一个或者一些文件要添加到工程里去,Xcode会显示一个对话框,在这里您可以指定文件怎样被添加到工程里去。
添加文件到一个工程里
引用风格菜单指定怎样保存这些文件的路径。
请参考“文件是怎样被引用的”获得更多您可以使用的不同的引用风格的描述。
请注意在您给工程定义了一个或者多个搜索路径之前在这个菜单里不包含染和搜索路径。
每当您给工程定义了一个搜索路径,这个路径就会出现在引用风格菜单的底部,您就可以给您添加的文件或者目录选择使用它。
AddtoTargets选择按钮组允许您把文件添加到您工程里当前定义的一个或者多个目标中去。
如果一个目标名字旁边的选择按钮被选中,这个文件在添加到工程里的时候同时被添加到这个目标里去。
在您添加一个文件到一个目标里之后,这个文件会与目标一起被编译。
您可以在任何时候指定那些文件被包含到一个目标里;这个选项允许