NotificationCenter 正在多次观察

NotificationCenter is observing multiple times

提问人:Antonio Labra 提问时间:1/10/2023 更新时间:1/10/2023 访问量:163

问:

我在使用观察器的实现中遇到了问题,问题是我多次使用同一个观察器,所以我不止一次地制作一个函数。Swift

在再次观察之前,如何验证我是否已经在观察同一个观察者?

NotificationCenter.default.addObserver(self, selector: #selector(myFunction(notification:)), name: NSNotification.Name(rawValue: "SameObserver"), object: nil)

感谢您的帮助

SWIFT 观察员 通知中心

评论


答:

1赞 Rob Napier 1/10/2023 #1

通过确保平衡对 和 的调用。或者,您可以在某处创建一个布尔值,指示您已经调用了 ,但最好只是平衡您的调用。addObserverremoveObserveraddObserver

平衡调用的最佳方法是将它们与观察者的生命周期或生命周期联系起来。在一生中,您将打电话进来(或使用自动删除您的观察结果的表格之一)。对于生命周期(例如,在 ViewController 中),可以调用 in 和 in 。addObserverinitremoveObserverdeinitaddObserverviewWillAppearremoveObserverviewDidDisappear

没有用于查询 NotificationCenter 的机制。