我需要为我的类创建依赖于iOS版本的自定义扩展。
所以,例如:
@available(iOS 10.0, *)
extension Foo {
func test() {
print("do something for iOS 10.0 and later")
}
}
如果我要在9.0(包含)和10.0(不包括)之间执行测试,该怎么办?
答案 0 :(得分:0)
我很感激你提出这个问题。
@available 与 #available 的工作方式类似,因为您指定了要定位的iOS版本,然后Xcode处理其余部分。例如:
@available(iOS 9, *)
func iOS9Work() {
// do stuff
}
如果您的部署目标是iOS 8,则无法先进行某些可用性检查,因此无法调用该iOS9Work()方法。如果需要,您可以叠加这些检查,例如:
//You need to perform this check before calling
if #available(iOS 9, *) {
iOS9Work()
}
@available(iOS 9, *)
func iOS9Work() {
// do stuff
}
在你的情况下,你必须这样打电话:
if #available(iOS 10, *) {
Foo()
}