定義する必要がありますが、iPad または iPhone を使用する場合、この場合は異なる値が必要です。
だから、私が思うに、それは次のようになるはずです:
#ifdef UI_USER_INTERFACE_IDIOM == iPAD
#define ROWCOUNT 12
#else
#define ROWCOUNT 5
#endif
取得するための解決策はありますか?
定義する必要がありますが、iPad または iPhone を使用する場合、この場合は異なる値が必要です。
だから、私が思うに、それは次のようになるはずです:
#ifdef UI_USER_INTERFACE_IDIOM == iPAD
#define ROWCOUNT 12
#else
#define ROWCOUNT 5
#endif
取得するための解決策はありますか?
UI_USER_INTERFACE_IDIOM
コンパイル時ではなく、実行時にハードウェアのタイプをチェックする式に展開されるマクロです。したがって、 の定義をconst やマクロではなく変数に変更する必要があります。ROWCOUNT
NSUInteger rowCount;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
rowCount = 12;
else
rowCount = 5;
またはより簡潔に:
NSUInteger rowCount = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? 12 : 5;
#ifdef
ここであなたが望むことを本当にしません。
良い解決策は次のとおりです。
#define ROWCOUNT ((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) ? 5 : 12)