在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。
PCH文件的作用
1.用来包含一些使用频率较高的头文件
2.存放一些全局的宏
3.因为是预编译文件,运行项目会加大编译时间,所以在Xcode6之后,苹果为了避免滥用pch文件,就不再自动生成
手动添加PCH文件
修改配置
添加PCH文件的路径。
注意:路径可以是绝对路径,也可以是相对路径(默认)
(SRCROOT)表示工程文件路径绝对路径:
(SRCROOT)+相对路径
使用注意
在pch中定义的宏会自动添加到所有的文件中,所以添加的时候要特别注意:就是一定要区分C文件和OC文件,如果不区分,把OC宏用的代码页添加到C文件中,C文件不识别OC中的框架会报错
解决方法:
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
//先做一个判断 如果在OC环境下定义下面的公用宏 如果不是OC环境下,那么不能用
#ifdef __OBJC__
//头文件
#import "UIBarButtonItem+LXEctension.h"
#import "UIView+LXExtension.h"
#import "UIImage+LXExtension.h"
#import "NSString+LXExtension.h"
#import "LXConst.h"
//#import "LXConst.h"
#import "UIImageView+LXExtension.h"
#import "NSCalendar+LXEctension.h"
#import "NSDate+LXExtension.h"
#import "UITextField+LXExtension.h"
#ifdef DEBUG //如果处于调试阶段调用
#define LXLog(...) NSLog(__VA_ARGS__);
#else//如果处于其它状态 发布状态
#define LXLog(...)
#endif
/** 弱引用 */
#define LXWeakSelf __weak typeof(self) weakSelf = self;
/** RGB颜色**/
#define LXColor(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
/**随机色 **/
#define LXRandomColor LXColor(arc4random_uniform(255),arc4random_uniform(255),arc4random_uniform(255))
/** 灰色**/
#define LXGrayColor(v) LXColor(v,v,v)
/** 打印方法 */
#define LXLogFunc LXLog(@"%s", __func__);
#define LXScreenW [UIScreen mainScreen].bounds.size.width
#define LXScreenH [UIScreen mainScreen].bounds.size.height
#endif
#endif /* PrefixHeader_pch */
隐藏的宏
有的时候点击进入一个宏,却进不去,那么可以尝试在下面查找