官方文檔:https://docs.swift.org/swift-book/ReferenceManual/Attributes.html
@available放在函數(shù)、類或者協(xié)議前面以躯。表明這些類型適用的平臺(tái)和操作系統(tǒng)槐秧。
例如:
// 表明在iOS9和swift4.0以后在可用。
@available(iOS 9, *)
@available(swift 4.0)
func myMethod() {
// do something
}
@available(swift 4.0)
后不可再跟參數(shù)而@available(iOS 9, *)
還可變形為@available(iOS 9,macOS 10.12, *)
@available(iOS 9, *)
是一種簡(jiǎn)寫形式忧设。全寫形式是@available(iOS, introduced = 9.0)
刁标,當(dāng)只有introduced這樣一種參數(shù)時(shí),就可以簡(jiǎn)寫成以上簡(jiǎn)寫形式见转。
參數(shù):
platform name
:platform name 平臺(tái)名稱
introduced
: version number 開(kāi)始引進(jìn)的版本號(hào)
deprecated
: version number 開(kāi)始過(guò)期的版本號(hào)
obsoleted
: version number 開(kāi)始廢棄的版本號(hào)
message
: message 信息
renamed
: new name 重命名后新名稱
unavailable
不可用
這些參數(shù)可以相互組合使用命雀。
平臺(tái)名稱總共為以下幾種:
- iOS
- iOSApplicationExtension
- macOS
- macOSApplicationExtension
- watchOS
- watchOSApplicationExtension
- tvOS
- tvOSApplicationExtension
- swift
平臺(tái)名稱可被簡(jiǎn)寫成*
,表示全平臺(tái)
例:
// 在全平臺(tái)過(guò)期了
@available(*, deprecated, message: " 過(guò)期啦")
func go() {
// do something
}