不同iOS版本做代码适配__IPHONE_OS_VERSION_MAX_ALLOWED 和 __IPHONE_8_0等专业术语

目前开发只想最低版本支持iOS8了,iOS8以前的就不管了,然后现在iOS9和iOS10出来以后,有些新的API,也有些弃用的API,为了兼容,有时候代码里面需要编写判断不同iOS版本,或者只允许指定的iOS版本才可以编译或者执行。

需要用到以下方式,以下方式只针对OC(Swift的写法暂时还不清楚,等需要的时候在补充):

示例:

//ios8.0以后用此方法替代willRotateToInterfaceOrientation:duration:这个方法
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
// 视图控制器旋转到某个尺寸
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
    if (size.height > size.width)
    {
        NSLog(@"-------当前设备方向是竖屏-------");
    }
    else
    {
        NSLog(@"-------当前设备方向是横屏-------");
    }
}
#endif

 

__IPHONE_OS_VERSION_MIN_REQUIRED:最低iOS版本要求

__IPHONE_OS_VERSION_MAX_ALLOWED:允许最大的iOS版本

 

#define __MAC_10_0            1000

#define __MAC_10_1            1010

#define __MAC_10_2            1020

#define __MAC_10_3            1030

#define __MAC_10_4            1040

#define __MAC_10_5            1050

#define __MAC_10_6            1060

#define __MAC_10_7            1070

#define __MAC_10_8            1080

#define __MAC_10_9            1090

#define __MAC_10_10         101000

#define __MAC_10_10_2       101002

#define __MAC_10_10_3       101003

#define __MAC_10_11         101100

#define __MAC_10_11_2       101102

#define __MAC_10_11_3       101103

#define __MAC_10_11_4       101104

#define __MAC_10_12         101200

/* __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable */

 

#define __IPHONE_2_0      20000

#define __IPHONE_2_1      20100

#define __IPHONE_2_2      20200

#define __IPHONE_3_0      30000

#define __IPHONE_3_1      30100

#define __IPHONE_3_2      30200

#define __IPHONE_4_0      40000

#define __IPHONE_4_1      40100

#define __IPHONE_4_2      40200

#define __IPHONE_4_3      40300

#define __IPHONE_5_0      50000

#define __IPHONE_5_1      50100

#define __IPHONE_6_0      60000

#define __IPHONE_6_1      60100

#define __IPHONE_7_0      70000

#define __IPHONE_7_1      70100

#define __IPHONE_8_0      80000

#define __IPHONE_8_1      80100

#define __IPHONE_8_2      80200

#define __IPHONE_8_3      80300

#define __IPHONE_8_4      80400

#define __IPHONE_9_0      90000

#define __IPHONE_9_1      90100

#define __IPHONE_9_2      90200

#define __IPHONE_9_3      90300

#define __IPHONE_10_0    100000

/* __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable */

 

#define __TVOS_9_0        90000

#define __TVOS_9_1        90100

#define __TVOS_9_2        90200

#define __TVOS_10_0      100000

 

#define __WATCHOS_1_0     10000

#define __WATCHOS_2_0     20000

#define __WATCHOS_3_0     30000

  

可以在Xcode 中按住Command键,点击查看更多官方定义的宏。

posted @ 2016-11-01 00:44  PPDev  阅读(6003)  评论(0编辑  收藏  举报