0

マクロを定義して TableView セルをカスタム描画します#define DRAW_SET 1

アプリのライフ サイクルのどこかで、セルの外観を変更したいので、IBAction メソッドを実装し#undef DRAW_SETてマクロを作成し、値 2 で定義します#define DRAW_SET 2

私が抱えている問題は、マクロが未定義および/または再定義されていないことです。これは、パブリック/プライベート コールが原因である可能性がありますか?

ありがとう、クリントン

4

1 に答える 1

3

マクロはコンパイラ命令です。コンパイル後、すべてのマクロは対応する値/ステートメントに置き換えられます。 #undefマクロを未定義にできますが、ランタイム ロジックではなく、コンパイル ロジックの一部として繰り返します。

通常、マクロは、開発サイクル中にデバッグ コードを静的に追加し、アプリをデプロイするときにそれを削除するために使用されます (サイズを抑えるため)。例えば:

#ifdef DEBUG

// regular logic you don't want in your final app

#endif

私がマクロを使用したもう 1 つの場所は、さまざまなオペレーティング システムを対象とする場合です。

#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
}
于 2012-04-12T12:21:19.620 に答える