PCH文件的使用

原文在此

PCH(Prefix Header File)文件就是一个头文件。PCH文件的特点是: 项目中的所有其他代码文件无需显示导入该PCH文件, 默认就都可以访问(其他文件无需手动#import该 pch文件就能使用),也就是说,pch文件是全局的。

使用pch文件的好处:

  1. 经常使用的某个类的头文件,放入pch文件,避免每次都去添加;
  2. 在整个项目中经常使用到的同一个宏定义;
  3. 在项目调试中常使用很多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 */

原文地址:https://www.cnblogs.com/xishuidongliu/p/4951176.html