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,那么当在其他平台上运行并且代码在最低部署目标?
答案 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, *) {
}
块执行