相关疑难解决方法(0)

在DEBUG模式下启用和禁用NSLog

我想在调试时启用NSLog,否则禁用它.一个非常简单的事情是:

#ifdef DEBUG
NSLog(@"My log");
#endif
Run Code Online (Sandbox Code Playgroud)

但所有这一切#ifdef并且#endif是无聊的...... :(所以我尝试其他的东西:( .pch是放的好地方)

#ifdef DEBUG
#   define NSLog(text) NSLog(text);
#else 
#   define NSLog(text) 
#endif
Run Code Online (Sandbox Code Playgroud)

这项工作非常好(不是递归的).但问题是NSLog有无限的论据.

void NSLog(NSString *format, ...)
Run Code Online (Sandbox Code Playgroud)

我如何解决这个问题才能在预处理器模式下工作?

- 编辑 -

此代码使您的NSLog更好:

#ifdef DEBUG
    #define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
    #define NSLog(...)
#endif
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nslog

56
推荐指数
3
解决办法
3万
查看次数

标签 统计

cocoa ×1

nslog ×1

objective-c ×1