使用 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哈哈~
相关文章推荐
- 使用OutputDebugString将调试信息输出
- 使用OutputDebugString将调试信息输出
- 使用OutputDebugString将调试信息输出
- 使用OutputDebugString将调试信息输出
- js不能使用浏览器调试的时候debug解决方案,打印错误信息
- 当debug信息单独存放为一个文件时使用gdb调试CoreDump
- 如何方便的做到在调试(Debug)时显示一些调试跟踪信息,而在(Release)时屏蔽掉这些信息?
- STM32F4 Discovery 使用MDK-ARM Debug Viewer调试没有打印信息的原因之一
- 服务程序使用OutputDebugString,DbgView接收不到调试信息问题
- Linux 程序开发打印 Debug 信息的使用技巧--C语言中几种输出调试信息的方法
- win32使用OutputDebugString输出调试信息的方法
- 关于在CentOS中使用gdb出现debuginfos调试信息
- Linux 程序开发打印 Debug 信息的使用技巧--C语言中几种输出调试信息的方法
- win32使用OutputDebugString输出调试信息的方法
- 使用OutputDebugString将调试信息输出
- 使用OutputDebugString输出调试信息,使用DebugWindow来捕获它
- 使用VC++生成调试信息
- 使用VC++生成调试信息
- Windows程序调试系列: 使用VC++生成调试信息
- DNN调试利器DNNDebug.aspx--如何调试出错信息不具体的程序错误