使用 DEBUG 宏屏蔽调试信息

在 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哈哈~

你可能感兴趣的:(debug,宏,调试)