@available 可使用在任意类型上面(属性、类、结构体、枚举、方法、函数、闭包等)
示例
@available(iOS, introduced: 10.0, deprecated: 13.0, obsoleted: 16.0, message: "用 sampleFunc1 替代")
@available(swift 4.2)
func sampleFunc() {
print(#function)
}
其中的 iOS 表示平台, @available(swift 4.2) 后面不可再跟参数, 表示 swift 4.0 版本以上
支持的全部平台有:
-
iOS
-
iOSApplicationExtension
-
macOS
-
macOSApplicationExtension
-
watchOS
-
watchOSApplicationExtension
-
tvOS
-
tvOSApplicationExtension
-
swift
其他参数的意思:
introduced:version number 开始引进的版本号
deprecated:version number 开始过期的版本号
obsoleted:version number 开始废弃的版本号
message:提示信息
可根据具体情况组合使用。
省略 introduced 的情况
只有一个平台参数的时候, 可以省略 introduced 参数
@available(iOS 9.0, *)
func sampleFunc() {
print(#function)
}
意思是在 iOS 平台 9.0 以上的系统版本都可使用
针对全平台的简写
有两个关键字:
deprecated过期unavailable不可用
@available(*, deprecated)
func sampleFunc() {
print(#function)
}
@available(*, unavailable)
func sampleFunc() {
print(#function)
}
可带 message: 参数
@available(*, deprecated, message: "全部的平台都过期了")
func sampleFunc() {
print(#function)
}
@avaliable 参考链接