文件类型
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方便