1

我目前正在开发一个仍支持 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 {
    ....
}

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

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

4

1 回答 1

2

最后我找到了简单添加的答案

NSClassFromString("WCSession") != nil

在使用这样的WCSession类之前检查。

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

还有更好的答案吗?

于 2016-01-10T17:12:56.787 回答