一:为什么Xcode6没有自动创建Precompile Prefix Header
我们在写项目的时候,大部分宏定义,头文件导入都在Precompile Prefix Header文件里面。在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被阉割掉了,原因可以参考下面的链接:
Xcode 6去掉Precompile Prefix Header的主要原因在于:
(1)去掉自动导入的系统框架类库的头文件,可以提高原文件的复用性,便于迁移。
(2)一个肥胖无比的Prefix Header会大大增加Build Time。
二:使用Precompile Prefix Header的好处
为了取代在Prefix Header中自动导入的框架,可以在每一个需要导入系统框架的文件中通过@import来手动导入。如果在Prefix Header中导入了,那么我们在工程的每一个文件中可以免费获得使用的权利,而无需手动在每一个.h/.m文件中导入。该文件确有其方便之处。
三:给工程中添加Precompile Prefix Header
如果一定要用到Precompile Prefix Header,可以参考Xcode 5的配置来手动设置。
(1)创建一个pch文件: Command+N,打开新建文件窗口:ios->other->PCH file
(2)给pch文件命名
在工程中增加一个pch文件,命名还是按照Xcode 5的模板比较好:工程名-Prefix.pch,例如a-Prefx.pch
(3)修改工程配置文件,将刚刚创建的PCH file的路径添加到building setting中的precompile header选项中去,注意debug和release两栏都要添加:
注意:
- 将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度
修改pch文件路径按照如下格式:将building setting中的precompile header选项的路径添加“$(SRCROOT)/项目名称/pch文件名”(例如:$(SRCROOT)/自定义数字键盘/自定义数字键盘-Prefix.pch)
(4)向pch文件中添加文件
总结:Apple标都建议我们不用pch了,那么还是尽量少用吧。当然,如果一定要用,还是尽量减少pch文件中
的内容,降低工程对pch文件的依赖性,便于日后的迁移和解耦。
至此,向Xcode6中添加pch文件圆满结束!