gpt4 book ai didi

ios - WatchConnectivity 如何在多个 WKInterfaceController 之间共享 session ?

转载 作者:行者123 更新时间:2023-11-28 12:44:48 25 4
gpt4 key购买 nike

我有一种情况需要在多个 WKInterfaceController 之间共享 WCSession。单例方法将不起作用,一旦将委托(delegate)设置为一个类,其他类中的所有委托(delegate)都将失效。场景:接口(interface)A收发数据,根据数据内容,呈现接口(interface)B,点击接口(interface)B,会请求和接收额外的数据。您将如何在 A 和 B 之间共享 WCSession?

最佳答案

The other answer没有解释应用程序范围的 session 是否有效。

可以使用应用范围内的WCSession 单例,它可用于您的所有界面 Controller 。您只需在应用程序生命周期的早期实例化一个 session 管理器,让它成为自己的委托(delegate)。

与其尝试让每个接口(interface) Controller 处理 session 委托(delegate)(这不会很好地工作),一个 session 管理器(单例)可以为您的接口(interface) Controller 处理所有传输。

如另一个答案中所述,您可以使用通知让感兴趣的界面 Controller 知道他们的新数据何时到达。

使用模块化方法(例如 session 或数据管理器)有助于将此类代码排除在 Controller 之外,而实际上它不属于该 Controller 。它还可以更轻松地测试和使用每个模块。

我不会在这里重复代码,因为 Stack Overflow 上已经发布了几个现有的答案,以及网络上的文章,其中详细介绍了此技术。例如:

您经常会在较窄的问题中找到这些类型的答案,这些问题询问如何在 watch 应用及其复杂功能 Controller 之间共享数据。

关于ios - WatchConnectivity 如何在多个 WKInterfaceController 之间共享 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com