美文网首页
iOS - PrefixHeader.pch

iOS - PrefixHeader.pch

作者: AlexLi_ | 来源:发表于2019-03-04 15:19 被阅读0次

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文件的依赖性,便于日后的迁移和解耦。

相关文章

网友评论

      本文标题:iOS - PrefixHeader.pch

      本文链接:https://www.haomeiwen.com/subject/amdiuqtx.html