美文网首页
NS_CLASS_AVAILABLE_IOS

NS_CLASS_AVAILABLE_IOS

作者: LTOVE | 来源:发表于2018-08-13 19:27 被阅读0次

    描述

    // class weak import is not supported
    #define NS_CLASS_AVAILABLE(_mac, _ios)
    #define NS_CLASS_DEPRECATED(_mac, _macDep, _ios, _iosDep, ...)
    #endif
    
    #define NS_CLASS_AVAILABLE_IOS(_ios) NS_CLASS_AVAILABLE(NA, _ios)
    #define NS_CLASS_AVAILABLE_MAC(_mac) NS_CLASS_AVAILABLE(_mac, NA)
    #define NS_CLASS_DEPRECATED_MAC(_macIntro, _macDep, ...) NS_CLASS_DEPRECATED(_macIntro, _macDep, NA, NA, __VA_ARGS__)
    #define NS_CLASS_DEPRECATED_IOS(_iosIntro, _iosDep, ...) NS_CLASS_DEPRECATED(NA, NA, _iosIntro, _iosDep, __VA_ARGS__)
    
    • 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被引入。

    • NS_ENUM_AVAILABLE(10_11, 9_0)

    这个枚举分别随Mac OS 10.11和iOS9.0被引入。

    • __TVOS_PROHIBITED

    表示TVOS禁用
    os :

    1. _OSX 针对macOS SDK
    2. _IOS 针对iOS SDK
    3. _TVOS 针对tvOS SDK
    4. __WATCHOS_ 针对watchOS SDK
    5. __SWIFT_ 针对swift
      value:
      1 . AVAILABLE 可用的
    6. PROHIBITED 对某个平台禁止使用的
    7. DEPRECATED 过时的,弃用的,废弃的方法
    8. UNAVAILABLE 不可用
      应用实例
      @property (nullable, nonatomic, strong) NSArray<__kindof UIBarButtonItem *> *toolbarItems NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED;
    • NA

    表示缺省 参数无效不用填

    (id)objectAtIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(10_8, 6_0);

    如果是OSX和iOS通用的方法 会填满 支持单个系统的方法 就会出现缺省。比如上面这句是通用的Foundation框架的方法 就没有NA。

    相关文章

      网友评论

          本文标题:NS_CLASS_AVAILABLE_IOS

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