使用预处理器宏来确定应用程序构建是用于调试还是发布

时间:2014-04-18 05:49:22

标签: ios objective-c macros xcode5 nslog

我想记录调试版本的一些事件。我在.pch文件中添加了以下代码,仅在调试中使用DLog()进行记录。我在构建设置中添加了IS_DEBUG宏。

#ifdef IS_DEBUG
    #define DLog(...) NSLog(__VA_ARGS__)
#else
    #define DLog(...)
#endif

为了测试它是否有效,我从构建设置中删除了IS_DEBUG并运行了应用。问题是它总是记录而不管调试/发布应用程序。

请注意,我尝试更改DLog方法和预处理器宏的名称,以查看它是由于相同的宏或方法在其他地方定义的。但它仍然给出了同样的问题,意味着在其他地方没有使用相同的宏或方法。

2 个答案:

答案 0 :(得分:1)

在Xcode中,您可以定义方案。每个方案都可以构建到特定的配置,通常至少是Debug和Release。您可以在Xcode中指定要在方案管理器中使用的内容。

接下来,在目标配置中,您可以更改为您希望与之关联的配置定义的宏。在你的情况下,这将是'IS_DEBUG'。很可能你想为调试配置做这个,然后创建一个方案来构建那个配置。

答案 1 :(得分:-1)

布莱恩的回答帮助我解决了这个问题。只有清理项目和Xcode缓存对我不起作用。我重置了模拟器并清理了项目。它搞定了。