Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会自动的将 pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用 import就可以直接使用头文件中的内容,很大程度上给程序员带来了编程的便利性。但是在 Xcode6、7中去掉Precompile Prefix Header文件
Xcode6 之后去掉Precompile Prefix Header的主要原因可能在于 Prefix Header大大的增加了Build的时间。没有了Prefix Header之后就要通过手动@import 来手动导入头文件了,在失去了编程便利性的同时也降低了Build的时间
手动添加 pch文件方法
1> 在工程中添加一个pch文件,命名可以继续沿用Xcode5中得“工程名-Prefix.pch”
2> 修改工程配置文件,将创建的pch文件的路径添加到building setting中的precompile header选项中去(路径添加“$(SRCROOT)/项目名称/pch文件名”):
至此,完成了手动添加pch文件,编译一下程序,如果有错误检查一下添加的路径是否正确
注:开关Precompile Prefix Header时,pch的编译和导入机制是有很大不同的
1> 如果Precompile Prefix Header为YES,那么pch会被预编译,预编译后的pch文件会被缓存起来,从而提高编译速度
2> 如果Precompile Prefix Header为NO,那么pch不会被预编译,而是在每一个用到它导入的框架类库的.m文件中编译一次,降低了编译速度
在 Xcode6 中去掉了 Precompile Prefix Header文件,在开发的过程中可以尽量少用 pch文件,如果要用也要尽量减少 pch文件中得内容,降低程序对 pch文件的依赖