我目前正在开发一个仍然支持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
单例实现中集成?
答案 0 :(得分:2)
最后我找到了答案,只需添加
NSClassFromString("WCSession") != nil
在使用此类WCSession
类之前检查。
private let session: WCSession? = NSClassFromString("WCSession") != nil && WCSession.isSupported() ? WCSession.defaultSession() : nil
还有更好的答案吗?