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

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

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

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//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 @   PPDev  阅读(6074)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示