6

ビルド時にiPhoneデバイスまたはシミュレーターを検出するために使用できる単一のプリプロセッサートークンはありますか?私は現在使用しています:

#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
    // This is an iPhone build
#endif

これは推奨されるアプローチですか、それともより良い方法がありますか?マクロを組み込み、つまり、インクルードする必要のあるSDKヘッダーファイルではなく、コンパイラーによって定義することをお勧めします。

今のところiPhoneOSのバージョンを区別することについては心配していませんが、関連するすべてのマクロの詳細が記載されたAppleのドキュメントページがあり、それらが定義されている場合と定義されていない場合は、検索が行われたので、そのマクロへのリンクをいただければ幸いです。これまでのところ短くなっています。

ありがとう!

4

3 に答える 3

13

このサイトから、あなたが必要であることがわかりますTARGET_OS_IPHONE

#if TARGET_OS_IPHONE
//Do iPhone stuff
#else
//Do Mac stuff
#endif
于 2009-07-05T11:43:26.887 に答える
8

探しているファイルはです。TargetConditionals.hこれは、関心のあるすべてのマクロを定義します。2.2SDKの次のパスのように、SDKの各バージョンにあります。

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/usr/include/TargetConditionals.h
于 2009-07-05T07:14:26.260 に答える
2

iPhoneとデスクトップで実行されるコードがあるTARGET_OS_IPHONE場合は、ターゲットOSがiPhoneOSのいずれかのバージョンであるかどうかを判断するために使用できます。またTARGET_IPHONE_SIMULATOR、アプリがシミュレーター用に構築されている場合にのみ定義される、もあります。それらはまだヘッダーファイルで定義されていますが、それがお役に立てば幸いです。

于 2009-07-05T06:22:52.257 に答える