Swift #availability检查的最后一个参数

时间:2015-11-24 20:30:01

标签: swift availability

Swift编程语言指南对#availability check中的最后一个参数说了一遍:

if #available(iOS 9, OSX 10.10, *) {
    // Use iOS 9 APIs on iOS, and use OS X v10.10 APIs on OS X
} else {
    // Fall back to earlier iOS and OS X APIs
}
  

最后一个参数*是必需的,并在任何其他参数上指定   平台,if的主体在最小部署目标上执行   由您的目标指定。

     

摘自:Apple Inc.“Swift编程语言(Swift 2.1)。”   iBooks的。 {{3}}

我认为我没有正确理解这一点 - 如果我打算让代码只在iOS 9中执行而我的最低部署目标是8,那么当在其他平台上运行并且代码在最低部署目标?

1 个答案:

答案 0 :(得分:4)

最后一个参数*并不表示正文在其他参数上执行 iOS或OS X的版本,例如iOS 8。

表示正文在最小部署目标上执行 在其他平台上 watchOS或tvOS。目前已知的平台列在下面 "声明属性"在Swift文档中的"Attributes"中:

    iOS
    iOSApplicationExtension
    OSX
    OSXApplicationExtension
    watchOS
    watchOSApplicationExtension
    tvOS
    tvOSApplicationExtension

最后一个参数*是处理所有平台所不需要的 明确列出,以及未来的平台。在您的示例中,

if #available(iOS 9, OSX 10.10, *) {

} 

块执行

    iOS上的
  • > = 9,在iOS平台上运行时
  • on OS X> = 10.10,在OS X平台上运行时
  • 在任何其他目标上运行时的相应最低部署目标 平台(例如watchOS)。