gpt4 book ai didi

iphone - 使用单例向特定对象发布通知

转载 作者:行者123 更新时间:2023-11-28 19:24:31 25 4
gpt4 key购买 nike

我创建了一个单例类来存储对 CLLocationManager 的引用,因此我的整个程序都在访问同一个对象并充当委托(delegate)。

我正在使用 TabBarController,我的几个 ViewController 对位置数据以及生成的任何错误感兴趣。

现在我只是尝试处理不同的错误场景,我设置的方式是 locationManager:didFail:withError: 发布包含错误对象的通知。任何对该通知感兴趣的 ViewController 都会向 NSNotificationCenter 注册,并相应地处理错误。

我遇到的问题是所有已注册的 ViewController 都收到此错误通知,即使当前选定的选项卡未加载它们也是如此。虽然我确定这是设计使然,但有没有办法只发布到事件的 ViewController?

因为我的发件人是单例,所以我无法通过通知名称或通知发件人来区分,因为它们始终相同。

谢谢!

最佳答案

While I'm sure this is by design, is there a way to only post to the active ViewController?

当然 - 最简单的方法是将每个 View Controller 的 addObserverremoveObserver 方法放入 viewWillAppear viewWillDisappear 方法(或 didAppear/didDisappear)。

这样,只有主动可见的 View Controller 才会收到您的通知(我假设目前您将 addObserver/removeObserver 方法放在 viewDidLoad/Unload 中,因此当它们不可见但仍然收到通知时已加载)。

关于iphone - 使用单例向特定对象发布通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986106/

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