gpt4 book ai didi

swift - Rx swift : What is the best practice to use DisposeBag?

转载 作者:可可西里 更新时间:2023-11-01 00:31:01 27 4
gpt4 key购买 nike

现在我需要根据配置 API 更改应用主题(颜色),所以我使用 RxCocoa、RxSwift 框架在每个 View Controller 上创建可观察对象以在应用上应用新主题。

我的问题是使用 DisposeBag 的最佳实践是什么:

  • 在每个 View Controller 上创建新的 DisposeBag 对象?
  • 或者对所有可观察对象使用一个全局 DisposeBag?

提前致谢

最佳答案

dispose bag 的全部意义在于销毁它包含的可观察对象。一个全局性的包永远不会被破坏,这反而违背了它的目的。等于完全无视一次性用品。

只要您知道可观察对象将在有限时间内出错/完成,就可以忽略它们,因为链无论如何都会在那个时候被处理掉。例如,如果您使用 take(x),那么您实际上并不需要一次性用品,因为链条将完成并在发出规定数量的元素后被丢弃。

此外,有趣的是,订阅按钮点击时不需要它,因为点击 Observable 将在按钮取消时完成并释放。我怀疑其他 UI 元素的工作方式相同。

基本上,这个包是作为故障保险...(我在回答这个问题时学到了一些东西。谢谢。)

关于swift - Rx swift : What is the best practice to use DisposeBag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51694778/

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