iOS中.PCH文件的配置及使用
2016-03-12 13:01
489 查看
在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。
2.存放一些全局的宏
3.因为是预编译文件,运行项目会加大编译时间,所以在Xcode6之后,苹果为了避免滥用pch文件,就不再自动生成
注意:路径可以是绝对路径,也可以是相对路径(默认)
(SRCROOT)表示工程文件路径绝对路径:(SRCROOT)表示工程文件路径
绝对路径:(SRCROOT)+相对路径
解决方法:
PCH文件的作用
1.用来包含一些使用频率较高的头文件2.存放一些全局的宏
3.因为是预编译文件,运行项目会加大编译时间,所以在Xcode6之后,苹果为了避免滥用pch文件,就不再自动生成
手动添加PCH文件
修改配置
添加PCH文件的路径。注意:路径可以是绝对路径,也可以是相对路径(默认)
(SRCROOT)表示工程文件路径绝对路径:(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 */
隐藏的宏
有的时候点击进入一个宏,却进不去,那么可以尝试在下面查找相关文章推荐
- iOS注册远程推送消息证书后提示此证书签发者无效的解决办法
- iOS注册远程推送消息证书后提示此证书签发者无效的解决办法
- iOS注册远程推送消息证书后提示此证书签发者无效的解决办法
- iOS 开发--添加工程
- IOS开发随笔2
- iOS成员变量、成员属性和点语法
- iOS子视图捕获到的touches如何让父视图响应
- IOS上架流程
- IOS Xcode7.1新建纯代码工程
- CoreData简单实用
- IOS学习之设置NSZombieEnabled和MallocStackLogging解决EXC_BAD_ACCESS错误
- IOS开发随笔
- iOS开发学习笔记
- iOS plist 文件的读写
- iOS多线程
- iOS中事件传递
- 视音频基础知识
- iOS与js交互 去广告
- ios上线过程的错误
- iOS开发中 NSRunloop 与NSTimer的问题