Ich schaute auf Apples Lister (for Apple Watch, iOS, and OS X) Probe. Die Probe führt einen Test für iOS und OS X:Preprozessor-Makro für Apple Watch?
#import <TargetConditionals.h>
#if (TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
@import ListerKit;
#elif TARGET_OS_MAC
@import ListerKitOSX;
#endif
Allerdings gibt es keinen Test für TARGET_OS_WATCH
oder ähnliches. Greppen für watch
in TargetConditionals.h
liefert keinen Treffer:
$ cat /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
/SDKs/iPhoneOS7.1.sdk/usr/include/TargetConditionals.h | grep -i watch
$
Von TargetConditionals.h
, ich weiß, gibt es:
These conditionals specify in which Operating System the generated code will run. The MAC/WIN32/UNIX conditionals are mutually exclusive. The EMBEDDED/IPHONE conditionals are variants of TARGET_OS_MAC. TARGET_OS_MAC - Generate code will run under Mac OS TARGET_OS_WIN32 - Generate code will run under 32-bit Windows TARGET_OS_UNIX - Generate code will run under some non Mac OS X unix TARGET_OS_EMBEDDED - Generate code will run under an embedded OS variant of TARGET_OS_MAC TARGET_OS_IPHONE - Generate code will run under iPhone OS which is a variant of TARGET_OS_MAC. TARGET_IPHONE_SIMULATOR - Generate code for running under iPhone Simulator
Frage: Gibt es einen Präprozessor für Apples Uhr?
Ich Tagging mit ios, aber ich bin mir nicht sicher, dass die richtigen OS für diese Frage sind.
Die folgende Liste wurde von iPhone's TargetConditionals.h
kompiliert. Der Simulator und OS X ähnlich sind (sie haben nur unterschiedliche Bits auf 1 gesetzt):
#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
Fragen: Ist die Verwendung TARGET_OS_EMBEDDED
Uhr? Ist die Uhr weglassenTARGET_OS_IPHONE
?
Sie könnten eine freigegebene Manager-Klasse haben, die [UIApplication sharedApplication] aufruft, was auf Watch verboten ist, aber Sie werden es nie wissen mit diesem Makro aufgerufen werden oder überschreiben möchten. – ge0rges