1

重複の可能性:
iPad 用にコンパイルするときに設定される特定の Xcode コンパイラ フラグはありますか?

同じマクロを定義したいのですが、ipadかiphoneかによって値が異なります。たとえば、iPhoneのTHUMB_WIDTHを40に定義したいのですが、iPadのTHUMB_WIDTHは100です。これは可能ですか? 可能であれば、どのように行うのですか?

4

1 に答える 1

4

はい、可能です。まず、マクロはコンパイル時にコード内で置き換えられる単なるコードであることを理解する必要があります。

ユニバーサル アプリ (iPhone/iPad) が必要だと思います。つまり、両方のプラットフォームで同じコードをコンパイルして共有するということです。したがって、#if マクロを使用してこの値を変更することはできません。ロジック部分はマクロに含まれている必要があります。これにより、実行時に値がわかり、iPhone または iPad で実行するかどうかによって値が変わります。

次のようなものを使用できます。

#define THUMB_WIDTH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) ? 40 : 100
于 2013-01-21T03:11:07.427 に答える