gpt4 book ai didi

ios - 当我在 VC B 中时,如何使用本应在 VC A 中使用的通知中的数据

转载 作者:行者123 更新时间:2023-11-29 10:33:29 25 4
gpt4 key购买 nike

好吧,我一直在努力弄清楚如何做到这一点,但我似乎没有找到方法。我也想要正确的方法来做到这一点。

我的服务器每 30 秒向我的设备发送一次通知。假设我在 ViewController B 中,但通知接收的数据将在 ViewController A 中显示/使用。

假设我在 ViewController B 中时收到了两个通知。然后我导航到 ViewController A。我如何让它显示通知收到的最新数据?

最佳答案

您应该在将存储它们的(全局)第三个对象中收到通知,然后当显示 VC A 时,您可以轻松地从该对象中检索它们...遵循许多 iOS 类使用的“共享实例”路径(即使有人不喜欢它,因为他们认为单例是邪恶的,我认为这是使用它的完美案例)。

可以这样解决:

  1. 在启动时创建您的单例类,它将接收通知并将它们保持在队列中。
  2. 添加到单例方法以读取/使用通知队列。
  3. 从您需要数据的任何类(即您的 View Controller )通过上述方法获取您需要的信息。

这个解决方案将数据管理器(通知处理)和展示( View Controller )分开,我没有看到任何真正的缺点...

同样,我知道单例名声不好(而且人们经常滥用这种模式)但是你知道 Apple 的 NSNotificationCenter 有一个返回共享实例的 +defaultCenter 类方法(单例的另一个词)所以我很确定这是使用它的情况。

在这里http://www.daveoncode.com/2011/12/19/fundamental-ios-design-patterns-sharedinstance-singleton-objective-c/您可以找到一个很好的示例,说明如何实现 +sharedInstance(或 +defaultCenter 或您想要调用的任何名称)方法。

希望这对您有所帮助。

关于ios - 当我在 VC B 中时,如何使用本应在 VC A 中使用的通知中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28323362/

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