NS_CLASS_AVAILABLE_IOS

描述

// 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 可用的
2. PROHIBITED 对某个平台禁止使用的
3. DEPRECATED 过时的,弃用的,废弃的方法
4. 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。

猜你喜欢

转载自blog.csdn.net/u014034079/article/details/81635480
今日推荐