我想在调试时启用NSLog,否则禁用它.一件非常简单的事情是:
#ifdef DEBUG
NSLog(@"My log");
#endif
但所有这些#ifdef
和#endif
都是出生的(所以我try 了另一件事:(.pch是放置它的好地方)
#ifdef DEBUG
# define NSLog(text) NSLog(text);
#else
# define NSLog(text)
#endif
这项工作很好(不是递归的).但问题是NSLog有无限的参数.
void NSLog(NSString *format, ...)
如何在预处理器模式下解决这个问题?
--编辑--
这段代码使您的NSLog变得更好:
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif