我正在创建一个自定义的通用TableView模型以与MVVM和RxSwift一起使用。我知道RxTableViewSectionedReloadDataSource
类,但现在不愿意在我的项目中使用它。
模型已创建且正在运行
typealias TableViewModel = TableModel<CellDescriptor>
class TableModel<T> {
var sections = [SectionModel<T>]()
func add(item: SectionModel<T>) {
sections.append(item)
}
// More funcs there...
}
我在ViewModel中这样创建了一个实例:
var tableViewModel = Variable<TableViewModel>(TableViewModel())
然后在我的viewController中监听事件
viewModel.tableViewModel.asObservable().subscribe({ [weak self] value in
self?.tableView.reloadData()
}).addDisposableTo(dispose)
这里有几个问题(我是FRP的新手)
:
我知道一个解决方案是将我的sections数组创建为RxSwift
Variable()
,然后直接收听它,但是想知道是否有一种方法可以使类(或结构)本身成为可观察的。 Observable
不是我想要的。 :) 最佳答案
不要将 View 模型本身设为Observable
。这是不必要的复杂性,而且不是直观的。如果您确实想这样做,那么请看一下Variable
的实现方式,这应该使您了解如何实现。
相反,只需使用主题(例如Variable
)来保存 View 模型中的数据。
关于ios - RxSwift-自定义类可观察,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42002251/