Apple のLister (Apple Watch、iOS、および OS X 用) のサンプルを見ていました。このサンプルは、iOS および OS X のテストを実行します。
#import <TargetConditionals.h>
#if (TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
@import ListerKit;
#elif TARGET_OS_MAC
@import ListerKitOSX;
#endif
ただし、TARGET_OS_WATCH
または類似のテストはありません。watch
inを grep してTargetConditionals.h
もヒットしません:
$ cat /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
/SDKs/iPhoneOS7.1.sdk/usr/include/TargetConditionals.h | grep -i watch
$
からTargetConditionals.h
、私はあることを知っています:
これらの条件は、生成されたコードがどのオペレーティング システムで使用されるかを指定します。 走る。MAC/WIN32/UNIX 条件は相互に排他的です。埋め込み/iPhone 条件は TARGET_OS_MAC のバリアントです。 TARGET_OS_MAC - 生成コードは Mac OS で実行されます TARGET_OS_WIN32 - 生成コードは 32 ビット Windows で実行されます TARGET_OS_UNIX - 生成コードは一部の非 Mac OS X UNIX で実行されます TARGET_OS_EMBEDDED - 生成コードは組み込み OS バリアントで実行されます TARGET_OS_MAC の TARGET_OS_IPHONE - 生成コードは iPhone OS で実行されます。 TARGET_OS_MAC のバリアントです。 TARGET_IPHONE_SIMULATOR - iPhone シミュレーターで実行するためのコードを生成します
質問: Apple の時計用のプリプロセッサはありますか?
iosでタグ付けしていますが、この質問に対する正しい OS かどうかはわかりません。
以下のリストは、iPhone のTargetConditionals.h
. シミュレーターと OS X は似ています (1 に設定されたビットが異なるだけです)。
#define TARGET_OS_MAC 1
#define TARGET_OS_WIN32 0
#define TARGET_OS_UNIX 0
#define TARGET_OS_EMBEDDED 1
#define TARGET_OS_IPHONE 1
#define TARGET_IPHONE_SIMULATOR 0
質問: 時計は使用しTARGET_OS_EMBEDDED
ますか? 時計は省略 TARGET_OS_IPHONE
していますか?