1

コードのいくつかの部分で、UI要素をレンダリングするためにデバイスタイプをチェックする必要があるユニバーサルアプリがあります。以前、ジョブを実行するためisDeviceIPadに割り当てられたbool変数()viewDidLoadがありましたが、変数が適切に割り当てられていない場合がありました(私のView Controllerには複雑なフローがありました)。

代わりに、マクロを使用する可能性があると思ったので、isDeviceIPad(bool変数の代わりに)マクロが間違っていることはありません。

#define isDeviceIPad ([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad)

このようなマクロを使用しても大丈夫ですか?すべきでない理由(パフォーマンスの考慮事項など)はありますか?

4

2 に答える 2

4

そのマクロは正常に機能し、パフォーマンスの問題は発生しません。アプリがコンパイルされると、マクロの各使用がマクロの定義に置き換えられます。それは大規模な検索と置換のようなものです。

あなただけを使用する必要がありますが:

#define isDeviceIPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
于 2012-10-22T15:12:04.730 に答える
0

これは正しい構文です (スペースなし && パッドまたは電話の前に「i」なし && 余分な句読点なし)

   #define isDeviceIPad UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad
   #define isDeviceIPhone UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone
于 2013-03-24T16:29:24.793 に答える