我试图在 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()
}
}
但这行得通
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/