.pch文件简介

在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性,但潜在的也带来了一些问题,这也是在Xcode6中默认不再创建pch的原因吧。


上面这段话的意思就是凡事在这个文件中定义的宏,都成了全局共享的宏,因为这个文件被自动import到所有的.m文件中了。

因此这个文件很适合存放全局的常量。

与此同事,带来的麻烦就是编译速度被拖慢,因此xcode6之后,不再自动生成这个文件了,想使用,必须自定义了。

自定义的过程:

1.ctrl+N新建pch文件。

2.在buildsetting里面,选中ALL和combined项后,设置precompile prefix header的值=$(SRCROOT)/pch/你得pch文件名


一个标准的,加入了自动log开关的pch文件:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

//如果是通过点击xcode的运行按钮启动的,则系统会自动定义DEBUG宏,所以下面一定存在
#ifdef DEBUG  
//调试阶段,DEBUG的宏是系统在调试阶段自动添加的,所以只要判断有没有定义过DEBUG这个宏
//就可以在发布阶段自动的去掉项目中的所有的日志输出语句。
#define LskLog(...) NSLog(__VA_ARGS__)

#else 
// 发布阶段,未定义任何值,所以相当于关闭log
#define LskLog(...)
#endif


你可能感兴趣的:(.pch文件简介)