您的位置:首页 > 其它

使用 DEBUG 宏屏蔽调试信息

2014-05-29 16:30 190 查看
在 iOS 开发中我们使用 NSLog(...) 打印日志信息来调试程序,可是 release 的时候,这些调试信息输出就没什么用了,还可能会有一点浪费资源 !因此通过 C 语言的条件预编译来搞定:


#ifdef DEBUG
#define DebugLog(fmt,...)     NSLog((@"【Function:%s】【LineNum:%d】" fmt),__FUNCTION__,__LINE__,##__VA_ARGS__)
#define DebugLogInt(num)      DebugLog(@"int value is %d",num)
#define DebugFileLog(fmt,...) NSLog((@"【File:%s】【Function:%s】【LineNum:%d】" fmt),__FILE__,__FUNCTION__,__LINE__,##__VA_ARGS__)
#elif
#define DebugLog(format,...)
#define DebugLogInt(num)
#define DebugFileLog(format,...)
#endif

把这些单独写到一个头文件里,在 pch 文件中导入它就行了,以后输出 log 直接使用 DebugLog !

DEBUG 宏是 xCode 自动增加的,只有 scheme 选择 debug 模式的时候生效,这里正好符合我们的需求,所以我们直接使用就好了;当然了我们也可以添加别的预编译宏。
另外,这些是编译器内置的宏,可以帮助我们定位代码,简单介绍下含义:

__FILE__     :文件名
__FUNCTION__ :方法名
__LINE__     :行号
__VA_ARGS__  :可变参数

有问题可以给我留言哦 O(∩_∩)O哈哈~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: