如何仅为iOS 9用户安全地集成“Watch Connectivity”和仍然具有iOS7作为最低开发目标的应用程序?

时间:2016-01-10 16:10:08

标签: ios swift watchkit watchconnectivity

我目前正在开发一个仍然支持iOS 7(最低开发目标)的应用,但我要求仅为用户集成Watch Connectivity 使用iOS 9。因此,我创建了一个名为WatchConnectivityManager单身,并且拥有这样的私人会员。

private let session: WCSession? = WCSession.isSupported() ? WCSession.defaultSession() : nil

在iOS 9上一切正常,但是对于iOS 8和7,即使我的WatchConnectivityManager单例类定义开始如下,我仍然会在上面的行中崩溃。

@available(iOS 9.0, *)
class WatchConnectivityManager: NSObject, WCSessionDelegate {
    ....
}

任何帮助克服这种情况的人都将不胜感激。

NB:我可以轻松地在我使用WCSession相关代码的地方执行版本检查。但是,有没有办法将检查仅在WatchConnectivityManager单例实现中集成?

1 个答案:

答案 0 :(得分:2)

最后我找到了答案,只需添加

NSClassFromString("WCSession") != nil

在使用此类WCSession类之前检查。

private let session: WCSession? = NSClassFromString("WCSession") != nil && WCSession.isSupported() ? WCSession.defaultSession() : nil

还有更好的答案吗?