web-dev-qa-db-ja.com

デバッグのみのステートメントを宣言する方法

C#では、次のコードを使用して、デバッグビルド時にのみ実行されるコードを作成できます。Xcodeで同じようにするにはどうすればよいですか?

#if DEBUG
{
    // etc etc
}
#endif
38
Anthony Main

NDEBUGシンボルは、リリースモードビルドですでに定義されているはずです。

#ifndef NDEBUG
/* Debug only code */    
#endif 

NDEBUGを使用することで、デバッグビルドのためにコンパイラに-D DEBUG引数を指定する必要がなくなります。

44
ShuggyCoUk

使用できます

#ifdef DEBUG
    ....
#endif

追加する必要がありますDEBUG=1は、デバッグ構成の設定でプロジェクトのプリプロセッサシンボル定義に追加します。Xcodeによって自動的に行われるわけではないためです。

個人的にはDEBUG=1をチェックしていますNDEBUG=0、後者はデフォルトのビルド設定がデバッグ情報を含むことを意味するため、明示的にオフにする必要があります。一方、「DEBUG = 1」はオンにするデバッグのみのコードを意味します。

66
Alnitak

DEBUGは、プロジェクト/プリプロセッサマクロの下で、デフォルトで「デバッグモード」で定義されるようになりました。したがって、非常に古いプロジェクトがない限り、テストは常に機能します。

ただし、コードのインデントがめちゃくちゃになり、特にコンパクトではないのが嫌いです。そのため、私は生活を楽にする別のマクロを使用しています。

#ifdef DEBUG
#define DEBUGMODE YES
#else
#define DEBUGMODE NO
#endif

したがって、DEBUGMODE値のテストははるかにコンパクトです。

if (DEBUGMODE) {
//do this
} else {
//do that
}

私のお気に入り:

NSTimeInterval updateInterval = DEBUGMODE?60:3600; 
14
Tibidabo

非常に役立つデバッグ技術情報があります:テクニカルノートTN2124 Mac OS Xデバッグマジック http://developer.Apple.com/technotes/tn2004/tn2124.html#SECENV デバッグに役立つ多くの情報が含まれていますあなたのアプリ。

トニー

5
AnthonyLambert