我需要为我的类创建依赖于 iOS 版本的自定义扩展。
因此,例如:
@available(iOS 10.0, *)
extension Foo {
func test() {
print("do something for iOS 10.0 and later")
}
}
Run Code Online (Sandbox Code Playgroud)
如果我对 9.0(包含)和 10.0(排除)之间的版本执行测试会怎样?
我应该感谢你提出这个问题。
@available 的工作方式与#available类似,您指定要定位的 iOS 版本,然后 Xcode 处理其余的事情。例如:
@available(iOS 9, *)
func iOS9Work() {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果您的部署目标是 iOS 8,则在不首先进行可用性检查的情况下,您无法调用 iOS9Work() 方法。如果需要,您可以堆叠这些检查,例如:
//You need to perform this check before calling
if #available(iOS 9, *) {
iOS9Work()
}
@available(iOS 9, *)
func iOS9Work() {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你必须这样调用:
if #available(iOS 10, *) {
Foo()
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:Swift 中的可用性检查
| 归档时间: |
|
| 查看次数: |
3084 次 |
| 最近记录: |