PrefixHeader.pch是什么?
.pch是全局引用文件,在其中添加需要全局引用的常量和设置。

PrefixHeader.pch在Xcode之前是默认添加
在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性。
为什么Apple在Xcode6中默认不再创建pch
关于pch的得与失,stackoverflow上有段话讲的比较透彻:
[http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6]
Xcode 6去掉Precompile Prefix Header的主要原因在于:
去掉自动导入的系统框架类库的头文件,可以提高原文件的复用性,便于迁移。
臃肿的Prefix Header会大大增加Build Time。
为了取代在Prefix Header中自动导入的框架,可以在每一个需要导入系统框架的文件中通过@import来手动导入,当然要确保Build Settings中的Enable Modules是打开的。
如果在Prefix Header中导入了,那么我们在工程的每一个文件中可以免费获得使用的权利,而无需手动在每一个.h/.m文件中导入。该文件确有其方便之处。
Xcode6之后添加PrefixHeader.pch方法
在工程中增加一个pch文件,命名还是按照Xcode 5的模板比较好:工程名-Prefix.pch,例如a-Prefx.pch



这样修改的路径只能在这台电脑上编译通过,想要在其他电脑上编译通过需要将第一遍工程名之前的路径替换成工程的相对路径$(SRCROOT)
也就是将:
/Users/Zym/Desktop/LoveLimitFree/LoveLimitFree/PrefixHeader.pch
修改为
$(SRCROOT)/LoveLimitFree/PrefixHeader.pch
将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度