我们在写项目的时候,大部分宏定义,头文件导入都在这里,Xcode6去掉Precompile Prefix Header的主要原因可能在于Prefix Header大大的增加了Build的时间。但是没有了Prefix Header之后就要通过手动@import来手动导入头文件了,在失去了编程便利性的同时也降低了Build的时间,所有pch对于iOS开发还是很有 必要的。
1,Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件:“工程名-Prefix.pch”:
2,将building setting中的precompile header选项的路径添加“$(SRCROOT)/项目名称/pch文件名”(例如:$(SRCROOT)/LotteryFive/LotteryFive-Prefix.pch)
可以了,编译一下程序,如果有错误检查一下添加的路径是否正确。
3,将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度
或者参考
(1)在工程中添加一个pch文件,命名可以继续沿用Xcode5中得“工程名-Prefix.pch”:
(2)修改工程配置文件,将创建的pch文件的路径添加到building setting中的precompile header选项中去(路径添加“$(SRCROOT)/项目名称/pch文件名”):
至此,完成了手动添加pch文件,编译一下程序,如果有错误检查一下添加的路径是否正确。(假如你写的时$(SRCROOT)这个开头的,那就建在根目录下,如果是$(PROJECT_DIR),那就无所谓了)
这里注意,开关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文件的依赖。