ios - swift 2.0 @available 不起作用

标签 ios xcode swift swift2 ios9

我试图在 iOS7 上运行这段代码,但它失败了

@available(iOS 9.0, *)
class WatchConnection: NSObject, WCSessionDelegate {

    class func sharedInstance() -> WatchConnection {
        struct WatchConnectionSingleton {
            static let instance = WatchConnection()
        }
        return WatchConnectionSingleton.instance
    }

    override init() {
        super.init()
        if (WCSession.isSupported()) {
            let session = WCSession.defaultSession()
            session.delegate = self
            session.activateSession()
        }
    }

enter image description here

enter image description here

但这行得通

import WatchKit
import WatchConnectivity

class WatchConnection: NSObject, WCSessionDelegate {

    class func sharedInstance() -> WatchConnection {
        struct WatchConnectionSingleton {
            static let instance = WatchConnection()
        }
        return WatchConnectionSingleton.instance
    }

    override init() {
        super.init()
        guard #available(iOS 9.0, *) else { return }

        if (WCSession.isSupported()) {
            let session = WCSession.defaultSession()
            session.delegate = self
            session.activateSession()
        }
    }

    // use with invalidated session
    @available(iOS 9.0, *)
    func getUserId(completion: ((String?) -> Void)?) {

最佳答案

你不能在 iOS 7 中使用 @available

您可以使用以下方式检查版本:

if ([[[UIDevice currentDevice] systemVersion] doubleValue] < 8.0) {
    //For iOS 7 or less
}
else{
    //Check for available 
}

检查 documents

另请在此处查看 article 中对其进行了描述.

swift 2.1 Documents有类似 #available 的语法。请查看预发布documents


关于守卫声明条件:

如果一个或多个条件不满足,保护语句用于将程序控制转移到作用域之外。

关于ios - swift 2.0 @available 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32948649/

相关文章:

ios - UIView出现错误: Expected unqualified-id before '=' token

iphone - 是否可以创建一半仅与 iphone 兼容而其他部分通用的应用程序?

objective-c - 通过通用方法传递不同的 UIButton。选择器/发送器是答案吗?

ios - 自定义单元格内容不显示 Swift

ios - 应用程序在模拟器中运行但不在 Apple Watch 上

ios - Root View Controller Swift

ios - 使用 ARKit 拍摄高质量照片

ios - Xcode 找不到我在项目中制作的 .h 文件

ios - 如何在 swift 中以编程方式设置 UIVisualEffectView 的活力值?

ios - 如何创建自定义引脚注释 View