gpt4 book ai didi

ios - 观察来自 ViewController 的通知

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:25:01 30 4
gpt4 key购买 nike

当数据库中的数据更新时,我会从客户端向 NotificationCenter 发送一个包含新数据的通知。 ViewController 将观察此通知,因此可以相应地更新 UI。
如果 View Controller 观察到一个新的通知并尝试更新 UI,而它不是当前屏幕上的 View Controller ,应用程序会崩溃吗?
或者观察通知的函数是否会等到 View Controller 被呈现时才执行?

最佳答案

如果您的通知仅在您的 View Controller 在屏幕上时才有意义,那么您应该在 viewWillAppear 中收听并在 viewWillDisappear 中停止收听。

另一种方法是在 viewDidLoad 中监听通知并在 dealloc (Objective-C) 或 deinit (Swift) 中停止监听。如果你这样做,你的 View Controller 将在它存在的整个过程中收到指定的通知,无论它是否在屏幕上可见。

如果您在 View Controller 不在最前面时继续收听通知,那么您不会崩溃,但您可能会进行不可见的更新,这可能会降低您的应用程序的响应速度。

或者,您可以使用通知来更新您的 View Controller 的模型(数据存储)并使代码足够智能以跟踪 View Controller 何时可见,并且仅在它时更新 UI可见。

编辑:

请注意,如果您在 viewDidLoad 中注册通知,并且您的应用在 iOS >= 9 中运行,则无需在 deinit/dealloc 。操作系统现在会在对象被解除分配时处理注销通知对象。

关于ios - 观察来自 ViewController 的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48310816/

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