在此记录当个备注:
写法1.
#define __OUT_PUT(s, ...) OUT_PUT(@"%@",[NSString stringWithFormat:(s), ##__VA_ARGS__])
#if !defined(__DebugInfo__)
#define LogInfo(...) do {} while (0)
#else
#define LogInfo(...) __OUT_PUT(__VA_ARGS__)
#endif
这种情况下使用的方法,就不多说了.
写法2.
#define __OUT_PUT(s, ...) OUT_PUT(@"%@",[NSString stringWithFormat:(s), ##__VA_ARGS__])
#if !defined(__DebugInfo__)
# define __LoggerInfo(x)
#else
# define __LoggerInfo(x) OUT_PUT x
#endif
#define LogInfo __LoggerInfo
这种情况下使用的方法稍微有点不同
LogInfo((@"Hello World"));
即log格式化与log输出的内容需要双括号来控制.
在实际过程中在关闭 __DebugInfo__ 定义之后两种方式的size略有不同, 目前没有去确认是不是
do {} while (0)未完全优化造成的.