可能重复:
Is it true that one should not use NSLog() on production code?
Do I need to disable NSLog before release Application?
我需要在发布版本中删除项目中存在的所有NSLOG。我已经尝试使用下面的代码,但仍然通过手机访问构建,仍然在控制台中显示NSLOG。
#ifdef DEBUG
#define debug_NSLog(format, ...) NSLog(format, ## __VA_ARGS__)
#else
#define debug_NSLog(format, ...)
#endif
答案 0 :(得分:13)
简单地删除NSLog:
#define NSLog(s,...)
未指定替换的#define
将不替换任何内容,删除与#define
匹配的任何内容。这适用于简单的令牌定义和类似于上面的类似函数的定义。
答案 1 :(得分:4)
使用以下代码
#ifdef DEBUGGING
# define DBLog(fmt,...) NSLog(@"%@",[NSString stringWithFormat:(fmt), ##__VA_ARGS__]);
#else
# define DBLog(...)
#endif
确保正确设置了编译器标志。
另外,当您检查控制台时,您是否检查过是否使用了发布模式?
答案 2 :(得分:1)
使用此
#if TARGET_IPHONE_SIMULATOR
#define NSLog(fmt,...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define NSLog(...)
#endif
如果您在模拟器上运行它,将打印NSLog
。