ктонибудь работал с данной библиотекой “RxRealmDataSources”.
хотел упростить жизнь, но не тут то было.
запускаю симулятор, первое удаление отлично, второе итд не происходит. Вот код:
@IBOutlet weak var tableView: UITableView!
private let bag = DisposeBag()
private let viewModel = DownloadViewModel()
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(withClassFromNib: NewTableViewCell.self)
cellSetup()
}
fileprivate func cellSetup() {
// RxRealm to get Observable<Results>
let realm = try! Realm(configuration: viewModel.config)
// create data source
let dataSource = RxTableViewRealmDataSource<PlayerModel>(cellIdentifier: "NewTableViewCell", cellType: NewTableViewCell.self) { cell, index, model in
cell.titleLabel.text = model.title
cell.artistLabel.text = model.artist?.name
cell.themeLabel.text = model.genres.first?.name
cell.itemBgView.isHidden = true
}
let changeset = Observable.changeset(from: realm.objects(PlayerModel.self))
.share()
// bind to table view
changeset
.bind(to: tableView.rx.realmChanges(dataSource))
.disposed(by: bag)
// react on cell taps
tableView.rx.realmModelSelected(PlayerModel.self)
.subscribe { [weak self] id in
self?.showDetails(id)
}
.disposed(by: bag)
// delete row
tableView.rx.itemDeleted
.subscribe { [weak self] event in
guard let element = event.element else { return }
let model = dataSource.model(at: element)
self?.viewModel.deleteRow(at: element, model)
}
.disposed(by: bag)
}