<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>qiuping.com/blog &#187; 程序开发</title>
	<atom:link href="http://qiuping.com/blog/category/%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91/feed" rel="self" type="application/rss+xml" />
	<link>http://qiuping.com/blog</link>
	<description>鄂郎传说，简单生活，快乐人生</description>
	<lastBuildDate>Thu, 11 Mar 2010 08:23:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>为你的IDE选择合适的字体</title>
		<link>http://qiuping.com/blog/2008/11/%e4%b8%ba%e4%bd%a0%e7%9a%84ide%e9%80%89%e6%8b%a9%e5%90%88%e9%80%82%e7%9a%84%e5%ad%97%e4%bd%93.htm</link>
		<comments>http://qiuping.com/blog/2008/11/%e4%b8%ba%e4%bd%a0%e7%9a%84ide%e9%80%89%e6%8b%a9%e5%90%88%e9%80%82%e7%9a%84%e5%ad%97%e4%bd%93.htm#comments</comments>
		<pubDate>Wed, 19 Nov 2008 04:50:21 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[使用技巧]]></category>
		<category><![CDATA[程序开发]]></category>

		<guid isPermaLink="false">http://ourmac.net/?p=243</guid>
		<description><![CDATA[设置一款合适的字体会让人在使用IDE中提高效率和增加愉悦度。
lowing.org 网站为大家推荐了二十多种适合显示代码的字体，这可不是随便推荐的，他们的推荐标准是：
* Crisp clear characters.
* Extended characterset.
* Good use of whitespace.
* &#8216;l&#8217;, &#8216;1&#8242; and &#8216;i&#8217; are easily distinguished
* &#8216;0&#8242;, &#8216;o&#8217; and &#8216;O&#8217; are easily distinguished
* forward quotes from back quotes are easily distinguished -prefer mirrored appearance
* Clear punctuation characters, especially braces, parenthesis and brackets
个人比较喜欢Fixedsys，Lucida Console，Monaco这三款。
1，Fixedsys字体大家肯定不陌生，Windows记事本默认的字体就是Fixedsys。Fixedsys字体中每个字体的宽度都是固定的，字体感觉特别的坚固，即便是一个小小的点，显示的也很清晰。所以特别适合显示一些代码。
字体预览：

下载Fixedsys：fixedsys500c.zip
2，Consolas是一种固定字符宽度的字体，属无衬线字体，附带于微软的Windows Vista、Office 2007及Microsoft Visual Studio中发行。在Windows Vista的6套新字体中，Consolas近似于前版Windows中的2款内建字型：Lucida Console与Courier New，主要是设计做为程式代码的显示字体之用。
字体预览：

如果你的OS X安装了Office for mac，那你的系统就已经安装了这款字体。如果没有，你仍然可以从微软官方网站上下载Console或是从另一台Windows [...]]]></description>
			<content:encoded><![CDATA[<p>设置一款合适的字体会让人在使用IDE中提高效率和增加愉悦度。</p>
<p><a href="http://www.lowing.org/fonts/" target="_blank">lowing.org</a> 网站为大家推荐了二十多种适合显示代码的字体，这可不是随便推荐的，他们的推荐标准是：</p>
<p>* Crisp clear characters.<br />
* Extended characterset.<br />
* Good use of whitespace.<br />
* &#8216;l&#8217;, &#8216;1&#8242; and &#8216;i&#8217; are easily distinguished<br />
* &#8216;0&#8242;, &#8216;o&#8217; and &#8216;O&#8217; are easily distinguished<br />
* forward quotes from back quotes are easily distinguished -prefer mirrored appearance<br />
* Clear punctuation characters, especially braces, parenthesis and brackets</p>
<p>个人比较喜欢Fixedsys，Lucida Console，Monaco这三款。</p>
<p>1，Fixedsys字体大家肯定不陌生，Windows记事本默认的字体就是Fixedsys。Fixedsys字体中每个字体的宽度都是固定的，字体感觉特别的坚固，即便是一个小小的点，显示的也很清晰。所以特别适合显示一些代码。</p>
<p>字体预览：</p>
<p><img src="http://lh6.ggpht.com/_JwFTNX5uuxs/SSOcEhcsjiI/AAAAAAAAAck/572I88a4WVQ/s800/Fixedsys.jpg" width="500"/></p>
<p>下载Fixedsys：<a href="http://fixedsys.moviecorner.de/download/fixedsys500c.zip">fixedsys500c.zip</a></p>
<p>2，Consolas是一种固定字符宽度的字体，属无衬线字体，附带于微软的Windows Vista、Office 2007及Microsoft Visual Studio中发行。在Windows Vista的6套新字体中，Consolas近似于前版Windows中的2款内建字型：Lucida Console与Courier New，主要是设计做为程式代码的显示字体之用。</p>
<p>字体预览：<br />
<img src="http://lh6.ggpht.com/_JwFTNX5uuxs/SSOcEjAM7cI/AAAAAAAAAcc/jRD3375seNw/s800/Console.jpg" width="500"/></p>
<p>如果你的OS X安装了Office for mac，那你的系统就已经安装了这款字体。如果没有，你仍然可以从微软官方网站上<a href="http://www.microsoft.com/downloads/details.aspx?familyid=22e69ae4-7e40-4807-8a86-b3d36fab68d3&#038;displaylang=en" target="_blank">下载Console</a>或是从另一台Windows XP机子上拷贝一份Lucida Console。</p>
<p>3，Monaco刚是OS X自带的一款等宽字体，Xcode用的就是这款字体。在网上也发现越来越多的Windows用户喜欢使用这款字体。如果你是Windows用户，可以<a href="http://www.gringod.com/wp-upload/MONACO.TTF">从网上下载到这款美丽的字体</a>。</p>
<p>字体预览：</p>
<p><img src="http://lh3.ggpht.com/_JwFTNX5uuxs/SSOcEh5ld1I/AAAAAAAAAcs/lfOUnTOJhbA/s800/monaco.jpg" width="500"/></p>
]]></content:encoded>
			<wfw:commentRss>http://qiuping.com/blog/2008/11/%e4%b8%ba%e4%bd%a0%e7%9a%84ide%e9%80%89%e6%8b%a9%e5%90%88%e9%80%82%e7%9a%84%e5%ad%97%e4%bd%93.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>增加Eclipse内存</title>
		<link>http://qiuping.com/blog/2007/07/%e5%a2%9e%e5%8a%a0eclipse%e5%86%85%e5%ad%98.htm</link>
		<comments>http://qiuping.com/blog/2007/07/%e5%a2%9e%e5%8a%a0eclipse%e5%86%85%e5%ad%98.htm#comments</comments>
		<pubDate>Fri, 20 Jul 2007 15:59:38 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[程序开发]]></category>

		<guid isPermaLink="false">http://ourmac.net/archives/2007-07/134.html</guid>
		<description><![CDATA[Eclipse是现在Java平台下非常流行的IDE，但他非常耗内存，经常会因内存溢出而崩溃。在Windows 系统里，可以通过eclipse.exe -vmargs -Xms256M -Xmx512M 命令行改变Eclipse的启动参数。那在Mac OS X系统里，怎么做呢？
其实也很简单。打开Eclipse包，在Contents/MacOS 目录下有一个 eclipse.ini 文件，用编辑工具打开他，把Xms128m更改成Xms256m。
]]></description>
			<content:encoded><![CDATA[<p>Eclipse是现在Java平台下非常流行的IDE，但他非常耗内存，经常会因内存溢出而崩溃。在Windows 系统里，可以通过eclipse.exe -vmargs -Xms256M -Xmx512M 命令行改变Eclipse的启动参数。那在Mac OS X系统里，怎么做呢？</p>
<p>其实也很简单。打开Eclipse包，在Contents/MacOS 目录下有一个 eclipse.ini 文件，用编辑工具打开他，把Xms128m更改成Xms256m。</p>
]]></content:encoded>
			<wfw:commentRss>http://qiuping.com/blog/2007/07/%e5%a2%9e%e5%8a%a0eclipse%e5%86%85%e5%ad%98.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>理解Xcode工程</title>
		<link>http://qiuping.com/blog/2007/06/%e7%90%86%e8%a7%a3xcode%e5%b7%a5%e7%a8%8b.htm</link>
		<comments>http://qiuping.com/blog/2007/06/%e7%90%86%e8%a7%a3xcode%e5%b7%a5%e7%a8%8b.htm#comments</comments>
		<pubDate>Sun, 24 Jun 2007 09:24:51 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[程序开发]]></category>

		<guid isPermaLink="false">http://ourmac.net/archives/2007-06/127.html</guid>
		<description><![CDATA[Xcode是一个强大的专业开发工具，可以简单快速、而且以您熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言，Xcode要强大得多，它的设计目的是使您可以创建任何想像得到的软件产品类型，从Cocoa及Carbon应用程序，到内核扩展及Spotlight导入器等各种开发任务，Xcode都能完成。Xcode独具特色的用户界面可以帮助您以各种不同的方式来漫游工程中的代码，并且使您可以访问工具箱下面的大量功能，包括GCC，javac，jikes，和GDB，这些功能都是制作软件产品需要的。它是一个由专业人员设计的、又由专业人员使用的工具。
由于能力出众，Xcode已经被Mac开发者社区广为采纳。而且随着苹果电脑向基于Intel的Macintosh迁移，转向Xcode变得比以往的任何时候更加重要。这是因为使用Xcode可以创建通用的二进制代码，这里所说的通用二进制代码是一种可以把PowerPC和Intel架构下的本地代码同时放到一个程序包的执行文件格式。事实上，对于还没有采用Xcode的开发人员，转向Xcode是将应用程序连编为通用二进制代码的第一个必要的步骤。
无论您是已经有一定Xcode经验的开发者，还是刚刚开始迁移的新用户，都需要对Xcode的用户界面及如何用Xcode组织软件工程有一些理解，这样才能真正高效地使用这个工具。这种理解可以大大加深您对隐藏在Xcode背后的哲学的认识，并帮助您更好地使用Xcode。
Xcode工程定义的信息
在Xcode中的所有活动，从文件的创建和编辑，到应用程序的连编和调试，都是围绕着工程来进行的。Xcode工程对创建软件产品需要用到的文件和资源进行组织，并使您可以对其进行访问。无论您创建的是什么样的产品，Xcode都会为您管理三种类型的信息：


源文件的引用，包含源代码、图像、本地化的字符串文件、数据模型、以及更多的信息。
目标，定义要制作的产品。目标将制作产品需要的文件和指令组织为一个可以执行的连编动作序列。
执行环境，您可以在这个环境中运行和测试软件产品。执行环境定义了运行产品时使用的程序。在很多情况下，这个程序就是产品的本身，但是不一定是这样。另外，执行环境还可以定义命令行参数和需要用到的环境变量。

Xcode工程中的三个元素按图1所示的方式关联在一起。
						
图1：Xcode如何使用源文件引用、目标、和执行环境。
当您执行连编和运行命令（Command-R）时，Xcode会对指定的目标进行处理，该目标则执行一系列对源代码进行操作的动作，并最终生成一个产品。然后，Xcode就用当前活动的执行环境运行该产品。
&#8220;但是请等一下&#8221; ，您可能会问：&#8221;为什么要建立一个执行环境呢？难道我们不能直接运行产品吗？&#8221; 这是个好问题。如果这仅仅是运行一个连编了的Cocoa应用程序的话，则定义一个执行环境就太过复杂了。然而，有很多产品，比如插件，要求定义一个宿主应用程序才能运行产品。执行环境也用于在调试器中运行产品。您甚至可以定义多个执行环境，以便以不同的方式运行同样的产品。
工程的组&#38;文件列表
在Xcode的用户界面上，组成工程的源文件引用、目标、和执行环境都显示在组&#38;文件（Groups &#38; Files）列表中。您现在已经认识这些组件了，让我们接着看看各个组件在组&#38;文件列表中的位置，如图2所示。下面我们看一下DotView实例程序。
如果您喜欢的话，可以自行进行操作。打开/Developer/Examples/AppKit/DotView/DotView.xcodeproj文件就可以了。
						
图2：组&#38;文件列表将很多不同类型的信息封装在一个简洁的界面上
您可以看到，所有的源文件引用都在一个工程中，您可以展开工程中的每个产品，看看它们是如何组织在一起的，如图3所示。
						
图3：将一个产品展开可以显示其所有的连编组件，本例显示的是一个Cocoa应用程序。
同样地，您也可以展开一个目标，其内容是生成产品所需要的各个步骤，如图4所示。
						
图4：展开一个目标，显示生成产品需要的所有步骤。
工程漫游
组&#38;文件列表中的源代码文件、工程、目标、和执行环境的下面是一组对工程内容进行漫游的工具。这些条目以智能组（Smart Groups）的形式存在，智能组的工作方式和Finder中的智能文件夹（Smart Folders）及iTunes中的智能播放列表（Smart Playlists）一样。这些工具如图5所示。
						
图5：Xcode的组&#38;文件列表中含有几个工具，可以帮助您在工程中进行漫游。
在某些时候，Xcode的新用户会发现组&#38;文件列表提供的功能太多了，特别是和他们在其它环境中用惯了的简单文件列表相比较的时候。然而，一旦您熟悉了这些项目的功能，工程面板就会变成一个强大的工具，帮助您访问Xcode提供的所有功能。
深入理解源文件引用
现在，您已经了解了Xcode工程的基本组件，是时候将我们的注意力关注在源文件引用上了。如果您双击一个源文件引用，Xcode就会弹出一个适合的编辑器，使您可以对该文件进行修改。然而，您可能可以从上面的图示中推断出来，一个源文件引用也意味着一套指令，在源文件被加入到某个目标的时候执行。举例来说，当您将一个Objective-C源代码文件（带有.m后缀）加入到工程、并和某个目标相关联的时候，该文件将会被加入到目标中的编译源代码（Compile Sources）步骤中，由GCC编译器进行处理。
您可以通过Xcode的工程界面来控制一个源文件引用是否为某个目标的一部分，如图6所示。
						
图6：Xcode界面，使您可以快速调整源文件引用和目标的关联关系。
您也可以通过源文件引用的Get Info（获取信息）窗口来调整这些设置，访问File &#62; Get Info菜单项或者输入Command-I可以打开该窗口。该窗口如图7所示。
						
图7：文件引用的Info窗口，使您可以指定当前文件属于哪个目标，以及设置其它连编选项。
将之前图示的Objective-C源文件包含到活动的目标中会使其被GCC编译，并连接到最后的执行文件中。如果您不希望将它包含到最后的产品中，则简单地将它从生成产品的目标中删除就可以了。
目标是如何被处理的
现在，让我们把注意力转移到目标上，并关注目标是如何被处理的。如果您详细察看组&#38;文件中的目标，就可以大致看出生成产品时发生了什么。图8更加详细地解释了生成DotView产品的过程。
						
图8：文件被加入到目标后进行的动作。
通过图9所示的连编结果（Build Results）窗口，您可以看到连编一个目标的整个工作过程。您可以访问Build &#62; Build Results菜单项或输入Command-Shift-B来弹出连编结果窗口。
						
图9：连编结果窗口中按步骤显示的目标连编过程。
连编规则和设置
那么，Xcode怎么知道如何处理目标中的文件引用呢？这个问题很简单：Xcode根据与目标相关联的连编规则和设置来进行连编。缺省的规则和设置指定：任何使用GCC支持的语言写成的代码文件，都由GCC来编译。然而，如果您希望用先前的GCC版本来编译C的源代码文件，则可以通过目标的Info窗口来简单地进行设置，如图10所示。
						
图10：目标的连编设置和连编规则，可以在相应的Info窗口进行修改。
现在，您已经详细了解了源文件引用和目标，让我们看看Xcode工程的最后一部分：执行环境。
执行环境
我们之前已经说过，执行环境指的是产品如何在Xcode中运行。执行环境定义了Xcode应该运行什么程序，以及如何运行这个程序。您可以建立多个执行环境，以便在不同的条件下对产品进行测试。
简单地说，执行环境定义了下列内容：

使用什么执行文件，可能是目标连编之后生成的产品之一，或者系统中的其它执行文件。
要传递给执行文件的命令行参数。
启动执行文件之前需要在执行环境中设置的环境变量。
应该使用的调试器，以及如何在调试器中运行执行文件。

您可以在Info窗口中看到如何为执行文件定义这些项目，如图11所示。
						
图11：您可以通过执行文件的Info窗口考察产品运行的细节。
						转自：http://developer.apple.com.cn/tools/xcode/xcodeprojects.html
]]></description>
			<content:encoded><![CDATA[<p>Xcode是一个强大的专业开发工具，可以简单快速、而且以您熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言，Xcode要强大得多，它的设计目的是使您可以创建任何想像得到的软件产品类型，从Cocoa及Carbon应用程序，到内核扩展及Spotlight导入器等各种开发任务，Xcode都能完成。Xcode独具特色的用户界面可以帮助您以各种不同的方式来漫游工程中的代码，并且使您可以访问工具箱下面的大量功能，包括GCC，javac，jikes，和GDB，这些功能都是制作软件产品需要的。它是一个由专业人员设计的、又由专业人员使用的工具。</p>
<p>由于能力出众，Xcode已经被Mac开发者社区广为采纳。而且随着苹果电脑向基于Intel的Macintosh迁移，转向Xcode变得比以往的任何时候更加重要。这是因为使用Xcode可以创建通用的二进制代码，这里所说的通用二进制代码是一种可以把PowerPC和Intel架构下的本地代码同时放到一个程序包的执行文件格式。事实上，对于还没有采用Xcode的开发人员，转向Xcode是将应用程序连编为通用二进制代码的第一个必要的步骤。</p>
<p>无论您是已经有一定Xcode经验的开发者，还是刚刚开始迁移的新用户，都需要对Xcode的用户界面及如何用Xcode组织软件工程有一些理解，这样才能真正高效地使用这个工具。这种理解可以大大加深您对隐藏在Xcode背后的哲学的认识，并帮助您更好地使用Xcode。</p>
<h2>Xcode工程定义的信息</h2>
<p>在Xcode中的所有活动，从文件的创建和编辑，到应用程序的连编和调试，都是围绕着工程来进行的。Xcode工程对创建软件产品需要用到的文件和资源进行组织，并使您可以对其进行访问。无论您创建的是什么样的产品，Xcode都会为您管理三种类型的信息：</p>
<p><span id="more-127"></span></p>
<ul>
<li><strong>源文件的引用</strong>，包含源代码、图像、本地化的字符串文件、数据模型、以及更多的信息。</li>
<li><strong>目标</strong>，定义要制作的产品。目标将制作产品需要的文件和指令组织为一个可以执行的连编动作序列。</li>
<li><strong>执行环境</strong>，您可以在这个环境中运行和测试软件产品。执行环境定义了运行产品时使用的程序。在很多情况下，这个程序就是产品的本身，但是不一定是这样。另外，执行环境还可以定义命令行参数和需要用到的环境变量。</li>
</ul>
<p>Xcode工程中的三个元素按图1所示的方式关联在一起。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/file-target-executable.jpg" alt="How Xcode uses source file references, targets, and executable environments."></p>
<p class="smalltext"><strong>图1：</strong>Xcode如何使用源文件引用、目标、和执行环境。</p>
<p>当您执行连编和运行命令（Command-R）时，Xcode会对指定的目标进行处理，该目标则执行一系列对源代码进行操作的动作，并最终生成一个产品。然后，Xcode就用当前活动的执行环境运行该产品。</p>
<p>&#8220;但是请等一下&#8221; ，您可能会问：&#8221;为什么要建立一个执行环境呢？难道我们不能直接运行产品吗？&#8221; 这是个好问题。如果这仅仅是运行一个连编了的Cocoa应用程序的话，则定义一个执行环境就太过复杂了。然而，有很多产品，比如插件，要求定义一个宿主应用程序才能运行产品。执行环境也用于在调试器中运行产品。您甚至可以定义多个执行环境，以便以不同的方式运行同样的产品。</p>
<h3>工程的组&amp;文件列表</h3>
<p>在Xcode的用户界面上，组成工程的源文件引用、目标、和执行环境都显示在组&amp;文件（Groups &amp; Files）列表中。您现在已经认识这些组件了，让我们接着看看各个组件在组&amp;文件列表中的位置，如图2所示。下面我们看一下DotView实例程序。</p>
<p>如果您喜欢的话，可以自行进行操作。打开<code>/Developer/Examples/AppKit/DotView/DotView.xcodeproj文件就可以了。</code></p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/project-view.jpg" alt="The Group and Files list encapsulates many different types of information into a compact interface."></p>
<p class="smalltext"><strong>图2：</strong>组&amp;文件列表将很多不同类型的信息封装在一个简洁的界面上</p>
<p>您可以看到，所有的源文件引用都在一个工程中，您可以展开工程中的每个产品，看看它们是如何组织在一起的，如图3所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/product-expanded.jpg" alt="Expanding a product shows all of the built components of a product, in this case a Cocoa application."></p>
<p class="smalltext"><strong>图3：</strong>将一个产品展开可以显示其所有的连编组件，本例显示的是一个Cocoa应用程序。</p>
<p>同样地，您也可以展开一个目标，其内容是生成产品所需要的各个步骤，如图4所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/target-expanded.jpg" alt="Expanding a target shows all of the steps taken to build a product."></p>
<p class="smalltext"><strong>图4：</strong>展开一个目标，显示生成产品需要的所有步骤。</p>
<h3>工程漫游</h3>
<p>组&amp;文件列表中的源代码文件、工程、目标、和执行环境的下面是一组对工程内容进行漫游的工具。这些条目以<strong>智能组（Smart Groups）</strong>的形式存在，智能组的工作方式和Finder中的智能文件夹（Smart Folders）及iTunes中的智能播放列表（Smart Playlists）一样。这些工具如图5所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/project-navigation.jpg" alt="The Xcode Groups and Files list contains several tools to help you navigate around your project."></p>
<p class="smalltext"><strong>图5：</strong>Xcode的组&amp;文件列表中含有几个工具，可以帮助您在工程中进行漫游。</p>
<p>在某些时候，Xcode的新用户会发现组&amp;文件列表提供的功能太多了，特别是和他们在其它环境中用惯了的简单文件列表相比较的时候。然而，一旦您熟悉了这些项目的功能，工程面板就会变成一个强大的工具，帮助您访问Xcode提供的所有功能。</p>
<h2>深入理解源文件引用</h2>
<p>现在，您已经了解了Xcode工程的基本组件，是时候将我们的注意力关注在源文件引用上了。如果您双击一个源文件引用，Xcode就会弹出一个适合的编辑器，使您可以对该文件进行修改。然而，您可能可以从上面的图示中推断出来，一个源文件引用也意味着一套指令，在源文件被加入到某个目标的时候执行。举例来说，当您将一个Objective-C源代码文件（带有<code>.m后缀）加入到工程、并和某个目标相关联的时候，该文件将会被加入到目标中的</code><strong>编译源代码（Compile Sources）</strong>步骤中，由GCC编译器进行处理。</p>
<p>您可以通过Xcode的工程界面来控制一个源文件引用是否为某个目标的一部分，如图6所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/target-membership.jpg" alt="The Xcode interface lets you quickly adjust a source file reference's association with a target."></p>
<p class="smalltext"><strong>图6：</strong>Xcode界面，使您可以快速调整源文件引用和目标的关联关系。</p>
<p>您也可以通过源文件引用的Get Info（获取信息）窗口来调整这些设置，访问<strong>File &gt; Get Info</strong>菜单项或者输入Command-I可以打开该窗口。该窗口如图7所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/file-inspector.jpg" alt="The Info window for a file reference allows you to set what targets a file is part of as well as any additional build settings."></p>
<p class="smalltext"><strong>图7：</strong>文件引用的Info窗口，使您可以指定当前文件属于哪个目标，以及设置其它连编选项。</p>
<p>将之前图示的Objective-C源文件包含到活动的目标中会使其被GCC编译，并连接到最后的执行文件中。如果您不希望将它包含到最后的产品中，则简单地将它从生成产品的目标中删除就可以了。</p>
<h2>目标是如何被处理的</h2>
<p>现在，让我们把注意力转移到目标上，并关注目标是如何被处理的。如果您详细察看组&amp;文件中的目标，就可以大致看出生成产品时发生了什么。图8更加详细地解释了生成DotView产品的过程。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/target-build-steps.jpg" alt="The actions taken on files as a result of their inclusion in a target."></p>
<p class="smalltext"><strong>图8：</strong>文件被加入到目标后进行的动作。</p>
<p>通过图9所示的连编结果（Build Results）窗口，您可以看到连编一个目标的整个工作过程。您可以访问<strong>Build &gt; Build Results</strong>菜单项或输入Command-Shift-B来弹出连编结果窗口。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/build-results.jpg" alt="The step-by-step progress of a target's build in the Build Results window."></p>
<p class="smalltext"><strong>图9：</strong>连编结果窗口中按步骤显示的目标连编过程。</p>
<h3>连编规则和设置</h3>
<p>那么，Xcode怎么知道如何处理目标中的文件引用呢？这个问题很简单：Xcode根据与目标相关联的连编规则和设置来进行连编。缺省的规则和设置指定：任何使用GCC支持的语言写成的代码文件，都由GCC来编译。然而，如果您希望用先前的GCC版本来编译C的源代码文件，则可以通过目标的Info窗口来简单地进行设置，如图10所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/target-info.jpg" alt="Both the build settings and build rules for a target can be modified in a target's Info window."></p>
<p class="smalltext"><strong>图10：</strong>目标的连编设置和连编规则，可以在相应的Info窗口进行修改。</p>
<p>现在，您已经详细了解了源文件引用和目标，让我们看看Xcode工程的最后一部分：执行环境。</p>
<h2>执行环境</h2>
<p>我们之前已经说过，执行环境指的是产品如何在Xcode中运行。执行环境定义了Xcode应该运行什么程序，以及如何运行这个程序。您可以建立多个执行环境，以便在不同的条件下对产品进行测试。</p>
<p>简单地说，执行环境定义了下列内容：</p>
<ul>
<li>使用什么执行文件，可能是目标连编之后生成的产品之一，或者系统中的其它执行文件。</li>
<li>要传递给执行文件的命令行参数。</li>
<li>启动执行文件之前需要在执行环境中设置的环境变量。</li>
<li>应该使用的调试器，以及如何在调试器中运行执行文件。</li>
</ul>
<p>您可以在Info窗口中看到如何为执行文件定义这些项目，如图11所示。</p>
<p>						<img src="http://ourmac.net/wp-content/uploads/2007/06/execution-info.jpg" alt="The executable Info window is where you can examine the details of how a product will be run."></p>
<p class="smalltext"><strong>图11：</strong>您可以通过执行文件的Info窗口考察产品运行的细节。</p>
<p>						转自：http://developer.apple.com.cn/tools/xcode/xcodeprojects.html</p>
]]></content:encoded>
			<wfw:commentRss>http://qiuping.com/blog/2007/06/%e7%90%86%e8%a7%a3xcode%e5%b7%a5%e7%a8%8b.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>设置Xcode代码自动完成功能</title>
		<link>http://qiuping.com/blog/2007/05/%e8%ae%be%e7%bd%aexcode%e4%bb%a3%e7%a0%81%e8%87%aa%e5%8a%a8%e5%ae%8c%e6%88%90%e5%8a%9f%e8%83%bd.htm</link>
		<comments>http://qiuping.com/blog/2007/05/%e8%ae%be%e7%bd%aexcode%e4%bb%a3%e7%a0%81%e8%87%aa%e5%8a%a8%e5%ae%8c%e6%88%90%e5%8a%9f%e8%83%bd.htm#comments</comments>
		<pubDate>Sat, 05 May 2007 04:19:01 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[程序开发]]></category>

		<guid isPermaLink="false">http://ourmac.net/archives/2007-05/108.html</guid>
		<description><![CDATA[用过vc的人都知道，装完vc助手可以自动提示代码，选择补全，加快编码进度。
现在我们使用 Xcode 开发，有没有这么功能呢？很显然，苹果不会让我等失望的，这个功能早就被集成在 Xcode 中了，叫做 Code Sense。
Code Sense 是 Xcode 自动补全技术. Code Sense 分析输入的代码上下文，提供补全语句的建议.支持 C、C++、Objective C、Objective C++、Java、AppleScript 语言。
注意：默认情况下 Code Sense 无效. 我们可以通过 Xcode 预置面板的 Code Sense 栏来定制 Code Sense。


原贴地址：http://umac.aa.topzj.com
]]></description>
			<content:encoded><![CDATA[<p>用过vc的人都知道，装完vc助手可以自动提示代码，选择补全，加快编码进度。<br />
现在我们使用 Xcode 开发，有没有这么功能呢？很显然，苹果不会让我等失望的，这个功能早就被集成在 Xcode 中了，叫做 Code Sense。<br />
Code Sense 是 Xcode 自动补全技术. Code Sense 分析输入的代码上下文，提供补全语句的建议.支持 C、C++、Objective C、Objective C++、Java、AppleScript 语言。<br />
注意：默认情况下 Code Sense 无效. 我们可以通过 Xcode 预置面板的 Code Sense 栏来定制 Code Sense。</p>
<p><img src='http://ourmac.net/wp-content/uploads/2007/05/xcode1.jpg' alt='xcode1.jpg' /></p>
<p><img src='http://ourmac.net/wp-content/uploads/2007/05/xcode2.jpg' alt='xcode2.jpg' /></p>
<p>原贴地址：<a href="http://umac.aa.topzj.com/viewthread.php?tid=383732&#038;highlight=" target="_blank">http://umac.aa.topzj.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://qiuping.com/blog/2007/05/%e8%ae%be%e7%bd%aexcode%e4%bb%a3%e7%a0%81%e8%87%aa%e5%8a%a8%e5%ae%8c%e6%88%90%e5%8a%9f%e8%83%bd.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5571314-1");
pageTracker._trackPageview();
} catch(err) {}</script>