В моем мобильном приложении я хотел бы обновить источник данных tableView с помощью запроса на обновление, но я не знаю, как вставить новые элементы поверх источника данных tableview.
Я вижу, что есть метод insertRows, такой как: self.tableView? .InsertRows (at: [indexPath], with: .top), но как мне добавить newItems здесь в соответствии с моими методами??
У меня есть функция initializedTableView (), которая инициализирует tableView с наблюдаемыми элементами PublishSubject.
func initializeTableView() {
viewModel
.items
.subscribe(onNext: { items in
self.tableView?.delegate = nil
self.tableView?.dataSource = nil
Observable.just(items)
.bind(to:(self.tableView?.rx.items(cellIdentifier:
itemCell.Identifier, cellType: itemCell.self))!) {
(index, element, cell) in
cell.itemModel = element
}.disposed(by: self.disposeBag)
})
.disposed(by: disposeBag)
}
Эта функция вызывается, когда пользователь запрашивает обновление для обновления:
func refreshTableView() {
// get new items
viewModel
.newItems
.subscribe(onNext: { newItems in
//new
let new = newItems.filter({ item in
// items.new == true
})
//old
var old = newItems.filter({ item -> Bool in
// items.new == false
})
new.forEach({item in
// how to update tableView.rx.datasource here???
})
}).disposed(by: disposeBag)
}