マクロはコンパイラの指示です。コンパイル後、すべてのマクロは対応する値/ステートメントに置き換えられます。 #undef
は、コンパイルロジックの一部として、実行時ロジックではなく、マクロを未定義にします。
通常、マクロは開発サイクル中に静的にデバッグコードを追加してから、アプリケーションを展開するときに削除してサイズを小さくします。例:異なるオペレーティングシステムターゲットとする場合、私は、マクロを使用しているもう一つの場所がある
#ifdef DEBUG
// regular logic you don't want in your final app
#endif
:これらのマクロは、様々な場所で定義することができます
#ifdef WINDOWS
// something windows specific
#endif
#ifdef AIX
// something AIX specific
#endif
は - あなたのコンパイラは自由のためにあなたにそれらの多くを与えますビルドプロセスの一部としてそれらを設定することができます。
ここで重要なことは、実行時に変更できないことです。
あなたはおそらくやりたいことはどこでもあなたのアプリ内からのアクセスに非常に簡単である、プロパティとして多分アプリケーションデリゲートに、どこかの変数を定義している:
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
次に、あなたのコードを見に設定されている変数:
if (appDelegate.myFlag == 1) {
// render my cell in one way
} else {
// render my cell in another way
}