1. 什么是PCH文件
PCH(Precompile Prefix Header File)文件,也就是预编译头文件。
预编译表示在代码编译之前做的一些代码文本的替换工作,比如说:#define JOB_CELL @"JobCell"
预编译会在代码正式编译之前,将代码中所有出现JOB_CELL的地方都用@"JobCell"替换掉,再进行代码编译。
在使用预编译的时候,我们往往会把很多代码文件通用的预编译代码放到一个文件里面,也就是预编译文件,一般是.h文件格式。这样有一个使用起来不太方便的点就是,所有要使用预编译的代码文件都要去引用一下这个预编译文件,需要些很多重复代码。因此,就有了PCH 预编译头文件,它就相当于所有代码文件都默认引用的预编译文件:在PCH文件里面定义的预编译指令,对所有代码文件都有效。
2. 怎么配置PCH文件
2.1 创建PCH文件
图1.png如图,建议在工程文件根目录下面创建PCH文件,
com+N
键弹出创建页面图2.png
选择iOS页面,搜索栏输入PCH 就能看到PCH File,选中一直点击Next下去就行了。图1中最后那个PrefixHeader.pch文件就是PCH文件了。
2.2 配置PCH文件
图3.png如图3,工程配置文件->Build Settings页面中,找到Precompile Prefix Header 和 Prefix Header配置项。Precompile Prefix Header 设置为YES。Prefix Header 输入PCH文件的文件路径。如果你的PCH文件是按照2.1方式创建的,那么PCH文件路径为:
$(SRCROOT)/工程文件名/PrefixHeader.pch
其中$(SRCROOT)
表示当前工程文件路径。例如$(SRCROOT)/GoodJob/PrefixHeader.pch
3. 使用PCH文件的注意事项
PCH文件给开发者带来了编写代码方面的便捷,可以让开发者不用为多个代码文件引用同一个预编译代码而多次编写引用代码。这样确实节省了一些开发工作,但是也同样给慵懒的开发者带来一定的弊端。他们同样为了节省开发工作,将很多非共用的预编译代码放到PCH文件中,这样就会导致整个工程在编译运行的速度变慢很多,反而降低了整个项目的开发效率,这也违反了使用PCH文件的初衷!建议开发者不要滥用PCH文件来让自己偷懒,PCH文件只能存放共用性质很高的预编译代码块。
在PCH中使用的宏定义建议加上工程缩写前缀,比如宏定义屏幕的宽度应该是:GJ_SCREEN_WIDTH
,而非:SCREEN_WIDTH
。这样可以避免在引用其它第三方库时,出现相同的宏定义名。
网友评论