pch文件的使用

pch文件的应用场景:
1.用来定义一些全局的宏
2.用来导入一些全局都能访问的头文件(如果只需要让.m或者.mm文件访问到,不需要让.c文件访问到,那么需要把头文件写到#ifdef _OBJC_ #endif之间,因为.m和.mm文件默认有一个_OBJC_的宏而.c文件没有)。
3.用来自定义log
pch文件的内容可以被所有的文件访问到,包括.c、.m、.mm文件。默认.m、.mm文件有一个#define _OBJC_的宏,而.c文件没有该宏,所以可以把需要.m、.mm访问到而不需.c文件访问到的.h头文件放到pch文件的这个宏内,把.c文件需要访问的放到pch文件的这个宏外。

1.——————————————————
#define _GLOBAL_

2.——————————————————
#ifdef _OBJC_

#import “ws.h”

#endif


3.——————————————————
为了调试方便,调试阶段往往会用NSLog()来打印输出信息,以查看信息程序运行是否正确
但是,发布阶段往往不需要输出这些调试信息,手动注释或者删除NSLog()会比较麻烦,所以可以采用以下方法来操作:
在pch文件的
  #ifdef _OBJC_
  #endif
之间添加
  #define WSLog(…) NSLog(__VA_ARGS__)

// 调试阶段:
#ifdef _OBJC_

#define WSLog(…) NSLog(__VA_ARGS__)

#endif
// 发布阶段:
#ifdef _OBJC_

#define WSLog(…) //NSLog(__VA_ARGS__)

#endif


或者更智能的写法:

#ifdef _OBJC_

#ifdef DEBUG  // 调试阶段
#define WSLog(…) NSLog(__VA_ARGS__)
#else              // 发布阶段
#define WSLog(…)
#endif

#endif

 

项目中需要设置pch的相对路径:

点击项目->building setting->搜索Prefix Header->输入pch文件在项目中的相对路径,如下图:

 

注意:不是设置绝对路径:/Users/用户名/Desktop/WeChat/WeChat/PrefixHeader.pch

需要设置的正确的pch文件的路径:WeChat/PrefixHeader.pch

 

 

posted @ 2015-09-01 22:44  oneSong  阅读(573)  评论(0编辑  收藏  举报