在C#中,我可以使用以下代码来获得仅在调试构建期间执行的代码,如何在Xcode中执行相同的操作?
#if DEBUG { // etc etc } #endif
Alnitak.. 66
您可以使用
#ifdef DEBUG .... #endif
您需要DEBUG=1
在调试配置的设置中添加项目的预处理器符号定义,因为Xcode不会自动为您完成.
我个人更喜欢DEBUG=1
检查NDEBUG=0
,因为后者意味着默认的构建配置带有调试信息,然后必须明确关闭,而'DEBUG = 1'意味着打开仅调试代码.
您可以使用
#ifdef DEBUG .... #endif
您需要DEBUG=1
在调试配置的设置中添加项目的预处理器符号定义,因为Xcode不会自动为您完成.
我个人更喜欢DEBUG=1
检查NDEBUG=0
,因为后者意味着默认的构建配置带有调试信息,然后必须明确关闭,而'DEBUG = 1'意味着打开仅调试代码.
应该已经在发布模式构建中为您定义了NDEBUG符号
#ifndef NDEBUG /* Debug only code */ #endif
通过使用NDEBUG,您可以避免为调试版本自行为编译器指定-D DEBUG参数
默认情况下,DEBUG现在在"调试模式"下定义为"项目/预处理器宏".所以测试它总是有效,除非你有一个非常古老的项目.
但是我讨厌它弄乱了代码缩进而不是特别紧凑的事实.这就是为什么我使用另一个让生活更轻松的宏.
#ifdef DEBUG #define DEBUGMODE YES #else #define DEBUGMODE NO #endif
所以测试DEBUGMODE值要紧凑得多:
if (DEBUGMODE) { //do this } else { //do that }
我的最爱:
NSTimeInterval updateInterval = DEBUGMODE?60:3600;
有一个非常有用的调试技术说明:技术说明TN2124 Mac OS X调试魔术 http://developer.apple.com/technotes/tn2004/tn2124.html#SECENV,其中包含许多用于调试应用程序的有用内容.
托尼