美文网首页iOS技术
IOS开发中常见的一些系统宏定义以及含义

IOS开发中常见的一些系统宏定义以及含义

作者: perfect_coding | 来源:发表于2020-05-22 11:45 被阅读0次

    NS_AVAILABLE_IOS(5_0)

    这个方法可以在iOS5.0及以后的版本中使用,如果在比5.0更老的版本中调用这个方法,就会引起崩溃。

    NS_DEPRECATED_IOS(2_0, 6_0)

    这个宏中有两个版本号。前面一个表明了这个方法被引入时的iOS版本,后面一个表明它被废弃时的iOS版本。被废弃并不是指这个方法就不存在了,只是意味着我们应当开始考虑将相关代码迁移到新的API上去了。

    NS_AVAILABLE(10_8, 6_0)

    这个宏告诉我们这方法分别随Mac OS 10.8和iOS 6.0被引入。

    NS_DEPRECATED(10_0, 10_6, 2_0, 4_0)

    这个方法随Mac OS 10.0和iOS 2.0被引入,在Mac OS 10.6和iOS 4.0后被废弃。

    NS_CLASS_AVAILABLE(10_11, 9_0)

    这个类分别随Mac OS 10.11和iOS9.0被引入。第一个代表macOS,第二个代表IOS,如果出现NA,则表明在某一个系统中不可用

    NS_ENUM_AVAILABLE(10_11, 9_0)

    这个枚举分别随Mac OS 10.11和iOS9.0被引入。
    代码中用到:


    if __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000

    //设置便利属性,为了提升速度,只要姓名以及电话属性
    self.contactManager.descriptors = [NSString RITLContactNamePhoneKeys];

    endif

    来控制编译时的最小版本为ios9以上,在使用的时候,我们可以直接利用宏 __IPHONE_9_0来控制编译的最小版本;
    __IPHONE_OS_VERSION_MIN_REQUIRED:表示编译时的系统版本最低要求,与之对应的为:
    __IPHONE_OS_VERSION_MAX_ALLOWED:表示编译时最大允许的系统版本号。
    举例:就上面的一个宏判断语句,如果我开发的时候用的是ios10的系统,那么程序进入到if中,否则走到else中进行编译。

    相关文章

      网友评论

        本文标题:IOS开发中常见的一些系统宏定义以及含义

        本文链接:https://www.haomeiwen.com/subject/qgcqahtx.html