Files in Xcode Project

本文章翻译自Xcode 3.2.5的官方文档。使用Lion和Xcode 4的人士,为免误导,必须忽略本文。

<---- 正文开始 ---->

文件是项目中最基本的编译单元。可在文件中插入注释、性能指标(performance metric)以及其它帮助开发。

本章目标:
1. 讲解Xcode如何引用项目中的文件。
2. 如何向项目中添加文件、文件夹,以及框架库引用(framework)。
3. 如何使用source tree设置可选访问路径
4. 跨工程引用其它的工程。

● Files in Xcode
工程中的每个文件,Xcode都会记录其下列属性:
1. 文件名:即系统文件名。无需解释。
2. 文件类型:[源码文件,图像文件,文本文件,...]。Xcode会根据不同的文件类型附加不同的属性,比如文件编码、结束符类型。
3. 路径:该文件在Mac系统里的路径。无需解释。
4. 路径类型:这个可以修改。用来指示Xcode如何存储路径信息才能引用到该文件。
上述信息,都可以在Xcode里,通过Get Info来查看。

● Files in a Project
一个工程定义了一个文件集合,用以编译出最后的应用程序,或库文件,统称产品(product)。
Xcode使用target来指定每个product所需的所有文件。这些文件可以散布在Mac各处,无需在工程目录下。
1. Source files:包括源代码文件、资源文件、图像,等等。每个文件Xcode都要在工程里添加一个引用。
2. Folders:若一个目录下的所有文件需要作为整体处理,则可把整个目录作为一个引用,添加到工程里。
3. Frameworks:工程引用到的框架库,也要添加引用到工程里。所谓框架库,就是头文件的集合。

通过项目模板创建一个工程,Xcode会建立若干文件。
1. Classes和Other Sources:都是源码文件。
2. Resources:资源文件。包括main.nib(定义了用户界面)、info.plist(项目属性文件)、infoPlist.strings(界面中用到的字符串)。
3. Frameworks:框架库引用。可以点开查看里面包含的头文件明细。
4. Products:Xcode为每个target所编译出的最后产品。编译结束后才能引用到具体文件,否则就是个占位符。
Xcode提供了Header Search Paths、Library Search Paths、Framework Search Paths这三个设置,用于搜索相应的文件。

● Managing Files and Folders in a Project
添加文件、文件夹,有三种方法
1. 在Group & Files窗口,先选择一个Group,然后菜单Project -> Add to Project。在弹出的对话框里选择文件或目录(可选多个)。这些东西就都引用到刚才的Group下面了。
2. 直接用鼠标,拖放操作,把Finder中的文件、文件夹,拉到Group & Files窗口。
3. 在Xcode的editor窗口打开的文件,可以通过菜单 Project -> Add Current File to Project 加到项目里。

接下来是重头戏:添加方式Dialog。
1. Copy items into destination...  是否把文件复制到工程目录下。
2. Reference Type  如何存储文件。和Source Trees有关。定义了Source Trees以后,这里会出现source path。
3. Text Encoding  告诉Xcode如何显示、存储该文件。
4. Recursively create groups...  给目录和子目录创建各自的Group,每个文件都被放置到相应的Group里,Xcode视之为project的一部分。若上面的Copy items...勾选了,Xcode会在工程目录下创建这些目录层次。但在Finder中向这些目录里复制文件的话,Xcode是不会把它们加到项目里的。
5. Create Folder References...  把目录本身添加到工程。这样,Xcode会直接引用到该文件夹,把其作为一个整体。比如,你用某个软件编辑了一些帮助文件,然后把它们放入一个目录。若想Xcode把这些文件放入Resources文件夹,编到最后的程序里,就可以把该目录的引用加入到工程里。
当要添加的东西里包含了文件夹,45两项就起作用了。这是Xcode对文件夹的两种处理方式。

● How Files are Referenced
Xcode在工程里保存了每个文件的路径,或相对路径,或绝对路径。Xcode有五种引用方式:

Relative to Enclosing Group 其路径是相对的,参照物是该文件所在的Group。若文件不在Group里,则是相对于project的目录。

Relative to Project 路径是相对于project目录的。

Relative to Build Product 路径是相对于最后生成的Product。

Relative to <source path> 使用它之前先在Source Tree里定义一个source path。

Absolute Path 绝对路径。

你可能感兴趣的:(框架,xcode,search,Path,resources,frameworks)