Xcode
Développement multiplateforme
Recherche…
CibleConditionals
L'en-tête du système TargetConditionals.h
définit plusieurs macros que vous pouvez utiliser depuis C et Objective-C pour déterminer la plate-forme que vous utilisez.
#import <TargetConditionals.h> // imported automatically with Foundation
- (void)doSomethingPlatformSpecific {
#if TARGET_OS_IOS
// code that is compiled for iPhone / iPhone Simulator
#elif TARGET_OS_MAC && !TARGET_OS_IPHONE
// code that is compiled for OS X only
#else
// code that is compiled for other platforms
#endif
}
Les valeurs des macros sont:
7.0
Lorsque vous utilisez les SDK iOS 9.1, tvOS 9.0, watchOS 2.0, OS X 10.11 ou plus récent:
Macro | Mac | iOS | simulateur iOS | Regarder | Simulateur de montre | la télé | Simulateur de télévision |
---|---|---|---|---|---|---|---|
TARGET_OS_MAC | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
TARGET_OS_IPHONE | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
TARGET_OS_IOS | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
TARGET_OS_WATCH | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
TARGET_OS_TV | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
TARGET_OS_SIMULATOR | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
TARGET_OS_EMBEDDED | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
TARGET_IPHONE_SIMULATOR | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
7.0
Lorsque vous utilisez les kits de développement iOS 8.4, OS X 10.10 ou plus anciens:
Macro | Mac | iOS | simulateur iOS |
---|---|---|---|
TARGET_OS_MAC | 1 | 1 | 1 |
TARGET_OS_IPHONE | 0 | 1 | 1 |
TARGET_OS_EMBEDDED | 0 | 1 | 0 |
TARGET_IPHONE_SIMULATOR | 0 | 0 | 1 |
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow