最近要开发先项目,重新整理一下pch文件的排版以作记录,我并不推荐大量的使用宏,大家有更好的使用方法可以交流交流。
我们在pch里经常会定义一些宏大体上有三点好处:
- 可以更高层级上控制程序源码本身和编译流程
- 提高代码重用性,节省工作量的叠加
- 提高代码可读性
大家知道宏定义是编辑器的预处理,而正是这个原因赋予了宏很强大的功能和灵活度。pch文件是在预编译的时候执行的,这样pch和宏配合使用会大大提高我们开发效率。
直接上代码:
//------------引用文件-------------begin
//------------引用文件-------------end
//------------环境配置-------------begin
//这里添加控制代码配置和编译流程的宏定义:域名,第三方秘钥等
//我们在测试环境根据开发需要会频繁的修改接口域名(程序员都有的通病---懒)
//0正式接口域名 1预发布接口域名 2内网接口域名
#define URL_PREFIX 0
#if !DEBUG
//正式环境 (相对的减少正式环境上的预编译判断)
//关闭log
#define NSLog(format, ...)
#define DLog(...);
#else
//测试环境
#if URL_PREFIX == 2
//内网
#elif URL_PREFIX == 1
//预发布
#else
//正式
#endif
//开启log
#define DLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#endif
//-------------环境配置--------------end
//-------------------获取设备大小-------------------------
//这里存放和屏幕尺寸相关的宏
//NavBar高度
#define NavigationBar_HEIGHT 44
//获取屏幕 宽度、高度
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
//-------------------获取设备大小-------------------------
//-------------------其他---------------------
#define Left_spacing 16 //左边间距
#define RefreshNum 20 //默认每次刷新列表的条数
//默认图片
#define Default_Icon [UIImage imageNamed:@"default_icon"] //头像
#define Default_Certification [UIImage imageNamed:@"icon-V"] //认证
#define Default_Right_Big [UIImage imageNamed:@"icon-btn-qj-big"] //向右的箭头 大
#define Default_Right_Small [UIImage imageNamed:@"icon-btn-qj-little"] //向右的箭头 小
//请求code
#define REQUEST_SUCCESS 0 //请求成功
#define REQUEST_ABNORMAL 100 //请求异常
#define REQUEST_FAILURE -2 //账号失效
#define REQUEST_NO_LOGIN -1 //账号为登陆
还有颜色,字体,常用的单例等这些都可以单独创建一个.h文件更方便管理和增加可读性
有很多同学用宏来定义api我认为这样不合适,有两点原因:1.对于一个app来说api往往会很多,使用宏定义会增加预编译的压力和时间,苹果一直都不推荐这样做 2.api是和网络层紧密相关的,利用static修饰放在对应模块的service里会更好
创建PCH文件的方法和配置以前写过一个http://blog.csdn.net/pianzhidenanren/article/details/48546635