官方文档:https://docs.swift.org/swift-book/ReferenceManual/Attributes.html
@available放在函数、类或者协议前面。表明这些类型适用的平台和操作系统。
例如:
// 表明在iOS9和swift4.0以后在可用。
@available(iOS 9, *)
@available(swift 4.0)
func myMethod() {
// do something
}
@available(swift 4.0)
后不可再跟参数而@available(iOS 9, *)
还可变形为@available(iOS 9,macOS 10.12, *)
@available(iOS 9, *)
是一种简写形式。全写形式是@available(iOS, introduced = 9.0)
,当只有introduced这样一种参数时,就可以简写成以上简写形式。
参数:
platform name
:platform name 平台名称
introduced
: version number 开始引进的版本号
deprecated
: version number 开始过期的版本号
obsoleted
: version number 开始废弃的版本号
message
: message 信息
renamed
: new name 重命名后新名称
unavailable
不可用
这些参数可以相互组合使用。
平台名称总共为以下几种:
- iOS
- iOSApplicationExtension
- macOS
- macOSApplicationExtension
- watchOS
- watchOSApplicationExtension
- tvOS
- tvOSApplicationExtension
- swift
平台名称可被简写成*
,表示全平台
例:
// 在全平台过期了
@available(*, deprecated, message: " 过期啦")
func go() {
// do something
}
image.png
image.png
网友评论