watchOS 3 在设备和手表之间共享的类中使用 WCSession

Posted

技术标签:

【中文标题】watchOS 3 在设备和手表之间共享的类中使用 WCSession【英文标题】:watchOS 3 Using WCSession in class shared between device and watch 【发布时间】:2017-04-12 04:24:14 【问题描述】:

我的应用依赖于手表和设备之间的持续通信。我想使用单例来管理所有消息传递和会话状态。我想使用继承在手表和设备上分别进一步自定义此行为。我希望父类是 WCSessionDelegate,但 WCSession 库适用于 ios 和 watchOS,并且每个都有单独的委托函数。有没有办法在超类中包含两组函数?现在编译器将文件视为一个或另一个,即使它是应用程序和监视目标的一部分。

Functions are marked as unavailable

【问题讨论】:

【参考方案1】:

理论上,您可以使用这样的编译器指令(Swift3.1):

#if os(iOS)
    <methods avaliable on iOS's Watch Connectivity framework>
#elseif os(watchOS)
    <methods avaliable on watchOS's Watch Connectivity framework>
#endif

【讨论】:

做到了。谢谢!

以上是关于watchOS 3 在设备和手表之间共享的类中使用 WCSession的主要内容,如果未能解决你的问题,请参考以下文章

如何在真实设备上安装独立的 watchOS 应用程序进行测试?

如何在不同的类中使用 QNetworkAccessManager?类之间一般共享重要数据?

在 iOS 和 WatchOS 之间共享核心数据

通过 watchOS 3 访问 GPS

在 iOS 和 watchOS 之间共享课程

当我尝试使用 UserDefaults(watchOS)从共享组中读取时,为啥我的值为零