如何在Xcode中添加#ifdef DEBUG?

22

我在一个项目中有一些代码,这些代码不应该在正式版中使用,但在测试时非常有用。我想做这样的事情:

#ifdef DEBUG
    // Run my debugging only code
#endif

我该在Xcode 4中的哪里添加DEBUG设置? 我尝试将其放置在“编辑方案”下的Run MyApp-> Arguments Passed On Launch中,但它没有起作用。 或者,是否已经有一个标志可供使用?

2个回答

40
在最近的Xcode项目模板中,预处理器宏部分已经为调试构建配置定义了DEBUG=1的宏。您可以使用#if预处理指令进行测试。

我正在处理一个使用Xcode 3模板创建的项目。即使使用#if,它仍然忽略代码。可能是我自己删除了它,我不确定。您知道在Xcode 4中我可以在哪里设置这个吗? - nevan king
2
这是一个配置,而不是计划。 ;) - Jesse Rusak
你混淆了方案和配置。通常没有调试方案,而是运行方案,它通常选择调试配置。 - Till
啊,好的,谢谢。整个构建过程变得有点复杂了 :) 我已经编辑了帖子。@nevan,请查看“Build Settings”并过滤“preprocessor”。您应该会看到一个名为Preprocessor Macros的部分,那里应该在Debug sch——配置旁边放置一行DEBUG=1 - zoul
2
@zoul 已经搞定,现在可用了。我使用的流程如下:在项目->MyApp中,在"Build Settings"下,我筛选了"preprocessor"。将鼠标悬停在"Preprocessor Macros"上,单击展开箭头,显示了我的"Debug,Ad-Hoc,Release"选择。我在Debug的"MyApp"列中点击并添加了"DEBUG=1"。这自动复制到了LLVM和LLVM/GCC设置中。对于整个Schemes/Configurations的事情,我必须表示同意。Xcode让我很困惑。 - nevan king
请注意,这仅适用于iOS应用程序 - Mac应用程序模板不包括DEBUG = 1。 - Ben Gotow

6

通常我会将-DDEBUG=1添加到XCode 4项目的构建设置中的OTHER_C_FLAGS部分。

是的,它们甚至可以区分Debug / Release / ADHOC / Store版本。


我看到过这个,但是因为“Debug、Ad-Hoc、Release”选项只有在鼠标悬停时才会显示出来,所以我一直没能弄清楚如何选择其中一个。 - nevan king

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接