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文件中导入。该文件确有其方便之处。