PCH(Prefix Header File)文件就是一个头文件。PCH文件的特点是: 项目中的所有其他代码文件无需显示导入该PCH文件, 默认就都可以访问(其他文件无需手动#import该 pch文件就能使用),也就是说,pch文件是全局的。
使用pch文件的好处:
- 经常使用的某个类的头文件,放入pch文件,避免每次都去添加;
- 在整个项目中经常使用到的同一个宏定义;
- 在项目调试中常使用很多NSLog()函数打印信息调试,在项目完成时,可以在pch文件中使用条件编译,一次全部清除掉。
使用pch文件的缺点:
由pch文件的特点可知,在项目编译是时,每编译一个文件都要添加pch文件,所以会非常消耗编译器性能,所以,从Xcode6开始,创建工程时默认不再创建pch文件,苹果不再推荐使用。但有时在项目开发中pch文件的好处还是很明显的,所以就需要我们自己创建。创建方法如下:
首先,Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件,添加需要引入的头文件名:
其次,修改工程配置文件,将刚刚创建的PCH file的路径添加到building setting中,操作如下:选中项目 -> Build Setting -> All -> 搜索"prefix head" -> 修改Prefix Header的内容为:
"$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch"
(如果有问题,换下面的方式,可能会与中文有关)
"$(SRCROOT)/对应的文件夹名/PrefixHeader.pch"
至此,大功告成,编译一遍,新添加的pch文件就可以正常使用了^_^。
pch的参考代码如下:
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
// 判断如果是OC文件才引入这些宏, 如果是普通C语言文件则不引入。否则当在项目中添加C语言文件时报错。
#ifdef __OBJC__
#define Name @"Steve"
#ifdef DEBUG
#define SteveZLog(...) NSLog(__VA_ARGS__)
#else
#define SteveZLog(...)
#endif
#endif
#endif /* PrefixHeader_pch */