• 不同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键,点击查看更多官方定义的宏。

  • 相关阅读:
    判断分流使用
    Mac系统如何显示隐藏文件?
    Brew安装的软件查询安装位置
    JetBrains 产品线破解方法
    Linux查看与挂载新磁盘
    对BRD、MRD、PRD、FSD四类产品文档的理解
    网站收藏
    收藏
    官方文档
    java 的访问权限控制
  • 原文地址:https://www.cnblogs.com/xiaopin/p/6018044.html
Copyright © 2020-2023  润新知