尝试一下markdown
简单介绍以下几个宏:
- __VA_ARGS__是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。
- __FILE__宏在预编译时会替换成当前的源文件名
- __LINE__宏在预编译时会替换成当前的行号
- __FUNCTION__宏在预编译时会替换成当前的函数名称
- 在***-Prefix.pch里面添加, 重新定义系统的NSLog,
__OPTIMIZE__
是release 默认会加的宏
`#ifndef OPTIMIZE
define NSLog(...) NSLog(VA_ARGS)
else
define NSLog(...) {}
endif`
2.在***-Prefix.pch里面添加
`#ifdef DEBUG
define DLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), FILE, FUNCTION, LINE, ##VA_ARGS);
else
define DLog(...);
endif`
- 在***-Prefix.pch里面添加, 重新定义系统的NSLog,OPTIMIZE 是release 默认会加的宏
`#ifndef OPTIMIZE
define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), PRETTY_FUNCTION, LINE, ##VA_ARGS)
else
define DLog(...)
endif`
DLog会打印出:类名,方法名,行数