@available 在swift 的中使用

297 阅读1分钟

@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 参考链接