wsl*_*sli 0 mvvm ios swift rx-swift
我是 RxSwift 的新手,在这里我想问一个关于 DisposeBag 应该在哪里的问题。
我的情况是,我检索了一个在 tableview 中显示的项目列表,每个项目都有自己的标志来指示它是否被选中。
所以我不仅仅是将结果列表绑定到 tableview。我需要一些逻辑来在用户通过 tableview 导航时在本地编辑列表。
我在 a 中创建了一个实例Variable([Item]),ViewModel但是如果我将逻辑放在ViewModela 中,DisposeBag则需要。
在谷歌搜索之后,大多数 MVVM+RxSwift 的例子都有Variable放置DisposeBagin 的实例,ViewModel但有些人说它应该只放置在ViewController. 真的吗?我怎样才能听Observable进去,ViewModel以便我的业务逻辑可以放在里面ViewModel?
一个DisposeBag往往不是应该不被放置在一个视图模型,除非有一个很好的理由。
通常, aDisposeBag旨在将订阅与其所有者联系起来。通常情况下,ViewModel 不会创建任何订阅,而只是提供 Observables 以便消费者可以订阅它们(例如 ViewController)。
这意味着 ViewController 是通常持有 的那个DisposeBag,因为它通常是使用订阅的那个(而不是 ViewModel 本身)。