2012-04-12 10 views
0

を通じて私は、カスタム、私はセルの外観を変更したいので、私はその後、#undef DRAW_SET IBActionメソッドを実装し、アプリケーションのライフサイクル全体でどこかのマクロ#define DRAW_SET 1iOSのリデザインのUITableViewマクロ

を定義することによって、私のテーブルビューのセルを描きますそのマクロを2 #define DRAW_SET 2の値で定義します。

問題は、マクロが定義されていない、または再定義されていないことです。これは公衆電話/私設通話によるものでしょうか?

ありがとう、クリントン

答えて

3

マクロはコンパイラの指示です。コンパイル後、すべてのマクロは対応する値/ステートメントに置き換えられます。 #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 
} 
関連する問題