Я создаю настраиваемую универсальную модель TableView для работы с MVVM и RxSwift. Я знаю класс RxTableViewSectionedReloadDataSource
, но не хочу его использовать сейчас в моем проекте.RxSwift - Пользовательский класс как наблюдаемый
Модель создана и работает
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
не то, что я бы искал. :)