ios - 是否可以在 Swift 中为特定的 iOS 版本定义一个变量?在类(class)层面

标签 ios swift

是否有可能在对象的类级别上实现这一点?具体来看这个有一个包含 WatchConnectivity 但也支持 iOS8 的应用程序

class Test {
    if #available(iOS 9, *) {
        let session: WCSession ......
    }
}

最佳答案

您可以使用计算的static 属性:

public class Example {  
  public static var answerToEverything: Int {
    if #available(iOS 9, *) {
      return 42
    } else {
      return 0
    }
  }
}

或者,您可以考虑使用 @available 属性:

public class Example {
  @available(iOS, introduced=1.0)
  public static var answerToEverything: Int = 42
}

1.0您的库(不是 iOS)的版本。

如果您更关心确保它在 iOS 上使用而不太关心 iOS 版本,这将很有用。

关于ios - 是否可以在 Swift 中为特定的 iOS 版本定义一个变量?在类(class)层面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805922/

相关文章:

ios - Swift:尝试打印 CLLocationSpeed "unexpectedly found nil while unwrapping an Optional value"时出现异常

iphone - 表单与 UITableView

ios - 您可以在 iOS 中使用任何 SQLITE3 数据库吗,或者是否有您应该匹配的特殊格式?

ios - 如何在函数声明中将返回类型移动到 AppCode 中的下一行?

ios - 如何在不使用 UIActivityViewController 的情况下在 WhatsApp 上分享视频?

javascript - JS 在 iOS 设备上无法正常工作 - 仅有时

iOS10 UIView模糊效果带阴影

ios - 我如何使用 Swift 3 发出 HTTP 请求?

ios - 在 UINavigationController 中获取过渡百分比

ios - NSURLSession 3xx 重定向和完成处理程序