#define NSLog (...) 仍然将输出打印到控制台

发布于 2024-10-28 06:05:21 字数 313 浏览 7 评论 0原文

我尝试在发布版本中禁用 NSLog。

我将以下代码放入 .pch 文件中

#ifndef __优化__
# 定义 NSLog(...) NSLog(__VA_ARGS__)
#其他
# 定义 NSLog(...) {}
#endif

不起作用,所以我尝试了

# 定义 NSLog(...) {}

它仍然将输出打印到控制台。

任何帮助都会很好,谢谢!

I tried to disable NSLog in release build.

I put the following code in .pch file

#ifndef __OPTIMIZE__
# define NSLog(...) NSLog(__VA_ARGS__)
#else
# define NSLog(...) {}
#endif

It's not working, so I tried

# define NSLog(...) {}

It still prints output to the console.

Any help will be good, thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

铁憨憨 2024-11-04 06:05:21

您可以声明自己的日志函数并使用它。如果你想要一个 va 列表,它的实现可以通过 NSLogv 。当禁用时,它的实现也不会将消息转发到 NSLogv,因此您可能需要不止一种类型的记录器。

you would declare your own log function and use that instead. its implementation could go through NSLogv, if you want a va list. its implementation would also not forward the messages to NSLogv when disabled, so you will likely need more than one flavor of logger.

星星的軌跡 2024-11-04 06:05:21

听起来你想要的类似于 这个关于 NSLog 提示的上一个 SO 答案中的 DLog 定义和技巧

#ifdef DEBUG 
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); 
#else 
#   define DLog(...)
#endif

Sounds like what you want is similar to this definition for DLog from this previous SO answer on NSLog tips and tricks.

#ifdef DEBUG 
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); 
#else 
#   define DLog(...)
#endif
无法言说的痛 2024-11-04 06:05:21

确保在构建设置或 .pch 文件本身的更高版本中定义了 __OPTIMIZE__,并且在 前缀标头 (GCC_PREFIX_HEADER) 构建设置中设置了 pch 文件。你也可以将 NSLog(...) 定义为空

#define NSLog(...)

Make sure __OPTIMIZE__ is defined in the build settings or higher up in the .pch file itself and that the pch file is set in the Prefix Header (GCC_PREFIX_HEADER) Build Settings. Also you can define NSLog(...) as nothing

#define NSLog(...)

匿名。 2024-11-04 06:05:21

在项目的构建设置中设置的预处理器宏具有: DEBUG=1 $(inherited)

所以现在只需使用: if(DEBUG) NSLog(@"Your log");

Preprocessor macro set in Build Setting of project having: DEBUG=1 $(inherited)

So now just use : if(DEBUG) NSLog(@"Your log");

旧时光的容颜 2024-11-04 06:05:21

在您的应用程序 .pch 文件中放置以下行。
Define NSLog(dese,...)

它将停止打印。

In you application .pch file put following line.
define NSLog(dese,...)

It will stop printing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文