在我们开发过程中,总是会有代码的不断迭代,有些API会随着版本的迭代逐渐的被放弃使用,甚至被废弃。为了在我们在使用的过程中了解到这些状态,就需要标记API的状态,引导我们选择更加合适的API。尤其是SDK的开发过程中这一点变得尤为重要。下面就介绍一系列的API状态的用法。
NS_AVAILABEL_IOS(iOS版本号)
1 |
|
表示此API
在iOS
某个版本之后才能使用,iOS版本号的写法可以写成14.0
或者14_0
NS_AVAILABLE(macos版本号,ios版本号)
1 |
|
表示此APO在MAC OS 10.8及iOS 6.0之后才能使用。
NS_DEPRECATED_IOS(ios起始版本,ios结束版本)
1 |
|
NS_DEPRECATED_IOS(9_0, 10_0)
代表在iOS 9.0引入,并在iOS 10.0废弃。这里的废弃是指api仍可以使用,但应该考虑换新的api了。
NS_DEPRECATED(macos起始版本,macos结束版本,ios起始版本,ios结束版本)
1 |
|
这里的 NS_DEPRECATED(9_0, 11_0, 7_0, 12_0)
代表在Mac OS 9.0和iOS 7.0引入,在Mac OS 11.0和iOS 12.0被废弃。
API_DEPRECATED_WITH_REPLACEMENT(“要使用的新api”,macos(起始版本,结束版本),ios(起始版本,结束版本),…)
1 |
|
这里的API_DEPRECATED_WITH_REPLACEMENT("deprecated_new", macos(10.2,11.0), ios(2.0,10.0), watchos(2.0,4.0), tvos(9.0,10.0))
表示此API在macOS10.2, iOS2.0,watchOS2.0,tvOS9.0开始引入,在macOS11.0, iOS10.0,watchOS4.0,tvOS10.0被废弃.
DEPRECATED_MSG_ATTRIBUTE(字符穿描述)
1 |
|
DEPRECATED_MSG_ATTRIBUTE("过期描述")
表示此API过期了, 括号中是过期的描述
NS_CLASS_AVAILABLE_IOS(ios版本)
1 |
|
MyView这个类在iOS 8.0中引入。
NS_CLASS_AVAILABLE(macos版本,ios版本)
1 |
|
MyView这个类在Mac OS 10.6和iOS 4.0引入
NS_CLASS_DEPRECATED_IOS(ios起始版本,ios结束版本,”描述”)
1 |
|
代表UIAlertView在iOS 2.0被引入,在iOS 9.0废弃。
NS_CLASS_DEPRECATED(macos(起始版本,结束版本),ios(起始版本,结束版本),”文字描述”)
1 |
|
MyView在Mac OS 10.0和iOS 2.0引入,并在Mac OS 10.6和iOS 4.0废弃。
API_AVAILABLE(macos版本,iOS版本, …)
1 |
|
API_AVAILABLE(macosx(10.10), ios(8.0))
代表下面的API在Mac OS 10.10和iOS 8.0引入。