Я создаю настраиваемую общую модель 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):
Как я могу «испустить» событие для запуска моей подписки в viewController из моего настраиваемого класса? Я знаю, что решением было бы создать мой массив разделов как RxSwift
Variable()
, а затем слушать его напрямую, но мне интересно, есть ли способ сделать сам класс (или структуру) наблюдаемым.Есть ли лучший подход к этой проблеме? Я прошел через игровую площадку RxSwift и пример проекта, но похоже, что есть тысяча способов сделать то же самое. Может быть,
Observable
- это не то, что я искал. :)