iOS 一定见过的系统宏 NS_AVAILABLE、NS_DESIGNATED_INITIALIZER...
2017-05-16 00:00
796 查看
摘要: 在平时开发过程中,我们会发现不是在用别人的代码,就是别人在用自己的代码,所以代码中尽可能完整的说明就显得非常重要,这里对常见的系统宏做个记录,希望能帮到大家不断完善自己的代码。
在阅读系统库方法时经常看到类似如下的一些宏:
在平时开发过程中,我们会发现不是在用别人的代码,就是别人在用自己的代码,所以代码中尽可能完整的说明就显得非常重要,这里对常见的系统宏做个记录,希望能帮到大家不断完善自己的代码。
####NS_AVAILABLE(10_0, 8_0)
表示在 Mac OS 10.6 和 iOS 8.0 后可用
####NS_AVAILABLE_MAC(10_0)
表示在 Mac OS 10.0 后可用
####NS_AVAILABLE_IOS(8_0)
表示在 iOS 8.0 后可用
####NS_DEPRECATED(8_0, 10_0, 6_0, 8_0)
表示在 Mac OS 8.0 和 iOS 6.0 后可用,至 Mac OS 10.0 和 iOS 8.0 废弃
####NS_DEPRECATED_MAC(8_0, 10_0)
表示在 Mac OS 8.0 后可用,至 Mac OS 10.0 废弃
####NS_DEPRECATED_IOS(6_0, 8_0)
表示在 iOS 6.0 后可用,至 iOS 8.0 废弃
####NS_ENUM_AVAILABLE(10_0, 8_0)
表示枚举在 Mac OS 10.0 和 iOS 8.0 后可用
####NS_ENUM_AVAILABLE_MAC(10.0)
表示枚举在 Mac OS 10.0 后可用
####NS_ENUM_AVAILABLE_IOS(8_0)
表示枚举在 iOS 8.0 后可用
####NS_ENUM_DEPRECATED(8_0, 10_0, 6_0, 8_0)
表示枚举在 Mac OS 8_0 和 iOS 6.0 后可用,至 Mac OS 10.0 和 iOS 8.0 废弃
####NS_ENUM_DEPRECATED_MAC(8_0, 10_0)
表示枚举在 Mac OS 8_0 后可用,至 Mac OS 10.0 废弃
####NS_ENUM_DEPRECATED_IOS(6_0, 8_0)
表示枚举在 iOS 6.0 后可用,至 iOS 8.0 废弃
####NS_CLASS_AVAILABLE(10_0, 8_0)
表示类在 Mac OS 10.0 和 iOS 8.0 后可用
####NS_CLASS_DEPRECATED(8_0, 10_0, 6_0, 8_0)
表示类在 Mac OS 8.0 和 iOS 6.0 后可用,至 Mac OS 10.0 和 iOS 8.0 废弃
####NS_CLASS_AVAILABLE_IOS(8_0)
表示类在 iOS 8.0 后可用
####NS_CLASS_AVAILABLE_MAC(10_0)
表示类在 Mac OS 10.0 后可用
####NS_CLASS_DEPRECATED_MAC(8_0, 10_0)
表示类在 Mac OS 8.0 后可用,至 Mac OS 10.0 废弃
####NS_CLASS_DEPRECATED_IOS(6_0, 8_0)
表示类在 iOS 6.0 后可用,至 iOS 8.0 废弃
####NS_EXTENSION_UNAVAILABLE(_msg)
表示创建的内嵌框架不包含应用扩展不能使用的API
####NS_EXTENSION_UNAVAILABLE_MAC(_msg)
表示创建的Mac内嵌框架不包含应用扩展不能使用的API
####NS_EXTENSION_UNAVAILABLE_IOS(_msg)
表示创建的iOS内嵌框架不包含应用扩展不能使用的API
####NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END
表示在这两个宏之间的代码,所有简单指针对象都被假定为nonnull,因此我们只需要去指定那些nullable的指针。
####UIKIT_EXTERN
简单来说,就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性
####NS_DESIGNATED_INITIALIZER
表示最终被指定的初始化方法,推荐使用的初始化方法
####UI_APPEARANCE_SELECTOR
表示被标记的属性都支持通过外观代理来实现UI深度定制
在生活中学习技术,在技术中感受生活。
——Jinfei Chen QQ:411282623
在阅读系统库方法时经常看到类似如下的一些宏:
在平时开发过程中,我们会发现不是在用别人的代码,就是别人在用自己的代码,所以代码中尽可能完整的说明就显得非常重要,这里对常见的系统宏做个记录,希望能帮到大家不断完善自己的代码。
####NS_AVAILABLE(10_0, 8_0)
表示在 Mac OS 10.6 和 iOS 8.0 后可用
####NS_AVAILABLE_MAC(10_0)
表示在 Mac OS 10.0 后可用
####NS_AVAILABLE_IOS(8_0)
表示在 iOS 8.0 后可用
####NS_DEPRECATED(8_0, 10_0, 6_0, 8_0)
表示在 Mac OS 8.0 和 iOS 6.0 后可用,至 Mac OS 10.0 和 iOS 8.0 废弃
####NS_DEPRECATED_MAC(8_0, 10_0)
表示在 Mac OS 8.0 后可用,至 Mac OS 10.0 废弃
####NS_DEPRECATED_IOS(6_0, 8_0)
表示在 iOS 6.0 后可用,至 iOS 8.0 废弃
####NS_ENUM_AVAILABLE(10_0, 8_0)
表示枚举在 Mac OS 10.0 和 iOS 8.0 后可用
####NS_ENUM_AVAILABLE_MAC(10.0)
表示枚举在 Mac OS 10.0 后可用
####NS_ENUM_AVAILABLE_IOS(8_0)
表示枚举在 iOS 8.0 后可用
####NS_ENUM_DEPRECATED(8_0, 10_0, 6_0, 8_0)
表示枚举在 Mac OS 8_0 和 iOS 6.0 后可用,至 Mac OS 10.0 和 iOS 8.0 废弃
####NS_ENUM_DEPRECATED_MAC(8_0, 10_0)
表示枚举在 Mac OS 8_0 后可用,至 Mac OS 10.0 废弃
####NS_ENUM_DEPRECATED_IOS(6_0, 8_0)
表示枚举在 iOS 6.0 后可用,至 iOS 8.0 废弃
####NS_CLASS_AVAILABLE(10_0, 8_0)
表示类在 Mac OS 10.0 和 iOS 8.0 后可用
####NS_CLASS_DEPRECATED(8_0, 10_0, 6_0, 8_0)
表示类在 Mac OS 8.0 和 iOS 6.0 后可用,至 Mac OS 10.0 和 iOS 8.0 废弃
####NS_CLASS_AVAILABLE_IOS(8_0)
表示类在 iOS 8.0 后可用
####NS_CLASS_AVAILABLE_MAC(10_0)
表示类在 Mac OS 10.0 后可用
####NS_CLASS_DEPRECATED_MAC(8_0, 10_0)
表示类在 Mac OS 8.0 后可用,至 Mac OS 10.0 废弃
####NS_CLASS_DEPRECATED_IOS(6_0, 8_0)
表示类在 iOS 6.0 后可用,至 iOS 8.0 废弃
####NS_EXTENSION_UNAVAILABLE(_msg)
表示创建的内嵌框架不包含应用扩展不能使用的API
####NS_EXTENSION_UNAVAILABLE_MAC(_msg)
表示创建的Mac内嵌框架不包含应用扩展不能使用的API
####NS_EXTENSION_UNAVAILABLE_IOS(_msg)
表示创建的iOS内嵌框架不包含应用扩展不能使用的API
####NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END
表示在这两个宏之间的代码,所有简单指针对象都被假定为nonnull,因此我们只需要去指定那些nullable的指针。
####UIKIT_EXTERN
简单来说,就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性
####NS_DESIGNATED_INITIALIZER
表示最终被指定的初始化方法,推荐使用的初始化方法
####UI_APPEARANCE_SELECTOR
表示被标记的属性都支持通过外观代理来实现UI深度定制
在生活中学习技术,在技术中感受生活。
——Jinfei Chen QQ:411282623
相关文章推荐
- iOS系统库头文件中NS_AVAILABLE和NS_DEPRECATED_IOS相关
- iOS 修饰符~ NS_DESIGNATED_INITIALIZER
- iOS Designated Initializers : Using NS_DESIGNATED_INITIALIZER
- iOS系统库头文件中NS_AVAILABLE 说明(更新中)
- iOS 修饰符~NS_DESIGNATED_INITIALIZER
- iOS - 系统方法中弃用的关键字的了解 NS_AVAILABLE和NS_DEPRECATED
- iOS系统库头文件中NS_AVAILABLE相关
- IOS NSProcessInfo获取系统开机累计时间
- NS_AVAILABLE_IOS(6_0)
- iOS 采用@available(iOS 11.0, *)适配 iOS11,会引起调用系统相册时,系统界面上移问题
- iOS NSProcessInfo获取系统开机累计时间
- iOS系统库头文件中NS_AVAILABLE宏定义
- 正确使用NS_DESIGNATED_INITIALIZER
- NS_DESIGNATED_INITIALIZER 正确编写Designated Initializer的几个原则
- iOS系统库头文件中NS_AVAILABLE相关
- ios获取系统当前日期,一定日期格式的代码
- iOS-代码提示如NS_AVAILABLE_IOS(4_2)的解释
- UIAlertController 的使用——NS_CLASS_AVAILABLE_IOS(8_0)
- extension是iOS8新开放的一种对几个固定系统区域的扩展机制,它可以在一定程度上弥补iOS的沙盒机制对应用间通信的限制。
- UIAlertController 的使用(NS_CLASS_AVAILABLE_IOS(8_0)iOS8以后有效)