Xcode 目标条件

示例

系统标头TargetConditionals.h定义了几个宏,您可以从C和Objective-C中使用这些宏来确定所使用的平台。

#import <TargetConditionals.h>  // 使用Foundation自动导入

- (void)doSomethingPlatformSpecific {
#if TARGET_OS_IOS
    // 为iPhone / iPhone模拟器编译的代码
#elif TARGET_OS_MAC && !TARGET_OS_IPHONE
    // 仅针对OS X编译的代码
#else
    // 为其他平台编译的代码
#endif
}

宏的值为:

7.0

使用iOS 9.1,tvOS 9.0,watchOS 2.0,OS X 10.11或更高版本的SDK时:

巨集苹果电脑的iOSiOS模拟器手表模拟器电视电视模拟器
TARGET_OS_MAC1111111
TARGET_OS_IPHONE0111111
TARGET_OS_IOS0110000
TARGET_OS_WATCH0001100
TARGET_OS_TV0000011
TARGET_OS_SIMULATOR0010101
TARGET_OS_EMBEDDED0101010
TARGET_IPHONE_SIMULATOR0010101
7.0

使用iOS 8.4,OS X 10.10或更旧的SDK时:

巨集苹果电脑的iOSiOS模拟器
TARGET_OS_MAC111
TARGET_OS_IPHONE011
TARGET_OS_EMBEDDED010
TARGET_IPHONE_SIMULATOR001