iOS - PrefixHeader.pch

Prefix Header 不宜过大会增加系统buid时间

  1. 创建 PrefixHeader.pch 文件
Untitled.png
  1. 设置路径让项目找到 PrefixHeader.pch 文件「$(SRCROOT)」
Untitled 1.png

相关知识点:

Precompile Prefix Header

内容来自:http://www.cocoachina.com/articles/9635

注意:开关Precompile Prefix Header时,pch的编译和导入机制是有很大不同的

如果Precompile Prefix Header为YES,那么pch会被预编译,预编译后的pch文件会被缓存起来,从而提高编译速度。可以从下面的Build Log中看出:

如果Precompile Prefix Header为NO,那么pch不会被预编译,而是在每一个用到它导入的框架类库的.m文件中编译一次。例如a-Prefix.pch导入了,ViewController.m和AppDelegate.m中都使用了objc_property_t这个类型(注意ViewController.h/m和AppDelegate.h/m都没有另外导入),那么在Build的过程中,在编译ViewController.m和AppDelegate.m时,a-Prefix.pch会被编译2次,每个.m文件编译一次。如下图:

由图可知,如果Precompile Prefix Header为NO,那么每个引用了pch内容的.m文件都要编译一次pch,可能Apple会另外做缓存机制,但是这样还是降低了编译的速度。

既然Apple标准都建议我们不用pch了,那么还是尽量少用吧。当然,如果一定要用,还是尽量减少pch文件中的内容,降低工程对pch文件的依赖性,便于日后的迁移和解耦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容