[关闭]
@fiy-fish 2017-04-14T21:02:36.000000Z 字数 1303 阅读 1045

16-04-14 Hugging 和 Compression 2.DebugLog 输出

工作日志


1.Hugging 和 Compression

如图:demo截图
有一个蓝色的label和黄色的label


参考:


2. DebugLog

*-Prefix.pch里面添加

  1. #define DEBUG_MODE
  2. #ifdef DEBUG_MODE
  3. #define DebugLog( s, ... ) NSLog( @"<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
  4. #else
  5. #define DebugLog( s, ... )
  6. #endif

这样当我们需要打印log时采用
DebugLog( s, ...)

如果我们需要打release版本

直接comment #define DEBUG_MODE,就可以了。

  1. 上面的宏是使用Debug输出调试信息, 其中,决窍其实就是这几个宏 ##__VA_ARGS__, __FILE__, __LINE__ 和__FUNCTION__,下面介绍一下这几个宏:
  2.   1) __VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错, 你可以试试。
  3.   2) __FILE__ 宏在预编译时会替换成当前的源文件名
  4.   3) __LINE__宏在预编译时会替换成当前的行号
  5.   4) __FUNCTION__宏在预编译时会替换成当前的函数名称
  6. - 预处理连接符:`##`操作符
  1. For example, you could do this:
  2. #define XNAME(n) x ## n
  3. Then the macro
  4. XNAME(4)
  5. would expand to the following:
  6. x4
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注