Swift 提供了 @available
、#available
这两个 Attribute 用于函数的可用版本定义和检查。
@available
用于声明一个函数的使用平台和适用版本,在 @available
条件后可以包含一些平台(iOS
、OSX
或watchOS
)和版本
@available(iOS 9.0, *) // 或者 @available(iOS 9, OSX 10.10, *)
func sayHello(_ name: String?) {
let personName = name ?? "Dalang"
print("Hello, \(personName)")
}
#available
用于函数调用时的函数版本和适用平台判断,格式同 @available
类似
if #available(iOS 9.0, *) {
sayHello(nil)
} else {
// Fallback on earlier versions
}
当调用 sayHello
函数的时候,如果不加入 #available
判断,会发生编辑错误,这大大提高了编译安全性。