我正在使用 watchOS 2
和 Xcode 7.3
。我在 watch 应用程序中有 3 个接口(interface) Controller (IC)。我正在使用 "[WCSession defaultSession] sendMessage"
方法在 3 个不同场景中从 AppDelegate 向这 3 个 IC 发送消息。接收方法在所有 3 个 IC 中提供。但是消息主要是在第三个 IC 中接收到的。我应该怎么做才能收到特定 IC 中的消息。
最佳答案
我建议进行一些重新架构,因为现在您的界面 Controller 正在执行“网络”和模型工作。
我推荐的方法是创建一个作为 WCSession 委托(delegate)的“持久性管理器”。接收到的任何数据都会被持久化,然后使用观察者或通知模式将更改通知给代码的其他部分。然后他们将继续并重新运行任何数据查询并更新他们的 UI(如果与他们呈现的 UI 相关的任何内容已更新(将新条目添加到表行、新项目被收藏等))。
这有很多优点,例如降低接口(interface) Controller 的复杂性,更好地分离关注点;但也许最重要的是,它使您的扩展程序能够在后台运行(没有界面 Controller 可见),但能够接收数据、保存数据,然后在下次应用程序启动时利用它。
关于ios - 如何在使用 AppDelegate 的 "[WCSession defaultSession] sendMessage"时在 watchOS 2 的特定接口(interface) Controller 中接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37726912/