文件类型

Xcode中的文件类型,总共4种类型:

1 普通文件(File)

2 Group(在Xcode中就是黄色的文件夹)

3 Folder(在Xcode中就是蓝色的文件夹)

4 Framework

每一种文件类型,都拥有2种属性:

1 文件路径(Path)

2 引用类型(Reference Type),指名文件路径的起点

通过文件位置和引用类型,Xcode就能定位到一个文件的确切位置。以下图为例:

Group aaaaa的引用类型为Relative to Build Products,其路径为../../../../../SourceItem/aaaaa,之所以有这么多../,是因为Relatvie to Build Product引用类型,表明了文件路径的起点是从工程的build文件夹开始算起.

在本例子中,build文件夹路径:

$HOME/Documents/myObjectiveC/SourceItem/DerivedData/SourceItem/Build/Products/Debug-iphonesimulator

而aaaaa所在的路径是:

$HOME/Documents/myObjectiveC/SourceItem/SourceItem/aaaaa

所以Relative to Build Product才会是../../../../../SourceItem/aaaaa

上图中的Full Path是aaaaa在系统磁盘上的路径,不会随着引用类型的选择而变化。

引用类型

从图中可以看到,Xcode的引用类型总共有6种:

Absolute Path就是按绝对路径引用

Relative to Group就是相对于上层Group,比如文件夹aaaaa如果选择这个引用类型,那么它的上层Group就是SourceItem文件夹,这个是默认的,也是最常用的类型

Relatvie to Project就是相对于工程文件夹,也就是包含.xcodeproj文件的文件夹

Relatvie to Developer Directory就是相对于Xcode app中的Developer文件夹,即/Applications/Xcode.app/Contents/Developer,如果需要用到Developer文件夹下的工具,这个选项很方便

Relative to Build Product就是相对于build文件夹,一个target的build产物可以是debug的,也可以是release的,如果选用这个引用类型,就可以方便的使用build的产物

Relative to SDK就是相对于当前的SDK目录,在本例子种,即/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk,如果需要用到SDK里面的资源,这个选项很方便

Group和Folder的区别

Group和Folder的区别,首先就是颜色上的区别,Group在Xcode中黄色的,Folder在Xcode中试蓝色的;

其次最大的区别是,Group被称为一个逻辑容器,虽然在磁盘上可以游对应的文件夹,但它自己没有target membership属性,只有它里面包含的内容有target membership属性;Floder刚好相反,整个Floder被视为一个整体有自己的target membership,而它里面的内容却没有target membership。

因此,当一个文件夹想被当成一个整体时,使用Floder类型比Group方便

Xcode中的文件类型的更多相关文章

  1. 5 个在 Linux 中管理文件类型和系统时间的有用命令

    对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同 ...

  2. PHP处理上传文件信息数组中的文件类型 正确获取

    PHP处理上传文件信息数组中的文件类型$_FILES['type']由客户端浏览器提供,有可能是黑客伪造的信息,请写一个函数来确保用户上传的图像文件类型真实可靠 如果是一般文件则通过 mime_con ...

  3. 三、Linux系统中的文件类型和文件扩展名

    .sock文件也是一类特殊的文件,这类文件通常用在网络之间进行数据连接,如:我们可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行通信: linux中的文件类型 文件类型介绍 Linux系 ...

  4. UNIX中的文件类型

    Unix的文件类型信息包含在stat结构的st_mode成员中可以用宏确定文件类型: 普通文件(S_ISREG()):包含某种形式数据的常用文件类型 目录文件(S_ISDIR()):这种文件包含其他文 ...

  5. linux中的文件类型

    1.使用ls -l命令可以查看文件的类型和权限 [tansheng@localhost etc]$ ls -l ----------. root root 10月 : gshadow -------- ...

  6. Xcode 中 pch 文件配置 - iOS

    一.简介 首先 pch 文件(即:Prefix Header)是一种预编译文件,在 Xcode 6 之前创建新的工程则会自动将该文件一起创建出来,但在 Xcode 6 之后苹果官方则默认将自动创建的方 ...

  7. linux中的文件类型以及查看文件类型的方法

    Linux文件类型和文件的文件名所代表的意义是两个不同的概念,在linux中文件类型与文件扩展名没有关系.它不像Windows那样是依靠文件后缀名来区分文件类型的,在linux中文件名只是为了方便操作 ...

  8. linux中的文件类型标记方法

    在ls -l显示的详细信息中有以下信息: -rw-r--r-- drwxr-xr-x 一共10个字符,第一个字符表示文件类型,后面9个字符分成3组表示文件权限.前三个表示属主(拥有者)对文件的权限,中 ...

  9. linux中的文件类型、时间戳、文件管理

    一.linux 文件类型 1.普通文件:- ,f 2.目录文件:d 3.链接文件(符号链接):l 4.设备文件 字符设备(线性设备):c 块设备(非线性设备):b 5.命名设备:p 6.套接字文件:s ...

随机推荐

  1. gitblit server windows搭建

    环境配置: windows64bit 系统 jdk1.8安装配置环境变量,这个不说了百度有 gitblit官网下载对应操作系统位数64bit包解压:http://www.gitblit.com/ ​ ...

  2. 谈谈我的js学习过程(二)——“Hello World!”

    在<谈谈我的js学习过程(一)>中,我简单聊了一下我认为的javascript的学习方法,接下来我们可以尝试来写一个最简单的js代码. "Hello World!"对于 ...

  3. CentOS 7中为Yum设置代理

    公司给的Linux机器,默认没给联网,然后安装Docker时流程走不下去,找IT半天没人回,然后我就自己折腾,各种配置系统代理,结果并没有成功,最后发现yum可以单独为yum设置代理,方式如下: YU ...

  4. 如何在C#程序中模拟域帐户进行登录操作 (转载)

    .NET Core .NET Core也支持用PInvoke来调用操作系统底层的Win32函数 首先要在项目中下载Nuget包:System.Security.Principal.Windows 代码 ...

  5. iOS Class结构分析

    objc_class结构体 类在OC中是objc_class的结构体指针 typedef struct objc_class *Class; 在objc/runtime.h中objc_class结构体 ...

  6. “C++动态绑定”相关问题探讨

    一.相关问题: 1. 基类.派生类的构造和析构顺序 2. 基类.派生类中virtual的取舍 二.测试代码: #include <iostream> class A { public: A ...

  7. scala (3) Function 和 Method

    scala 定义函数的关键字是 val 定义函数的通用格式是  val  函数名 = (参数列表)=> {函数体} object FunctionDemo { //通用的定义格式 val f1 ...

  8. 20155238 2016-2017-2 《Java程序设计》第三周学习总结

    教材学习内容总结 类定义使用class关键词,名称使用Cloths,建立实例运用New关键词 Clothes c1 = new Clothes(); = :制定参考名称参考某个对象 == :比较参考名 ...

  9. 20145209刘一阳《JAVA程序设计》第四周课堂测试

    第四周课堂测试 1.下列说法正确的是(ACD) A .使用extends关键字定义一个类的子类. B .Java与C++类似,支持多继承,即子类可以有一个或多个父类. C .Object是所有类的祖先 ...

  10. Java Swing:JPanel中添加JPanel

    1. JPanel默认布局是FlowLayout,如果不设置父JPanel的布局,则子JPanel自动填满父JPanel. JPanel jpanel = new JPanel(); jpanel.s ...