我已将数据存储在领域中,并使用RxRealmDataSources在UITableView
中进行显示,如下所示-
let items = Model.getChangesetObservable()
let dataSource = RxTableViewRealmDataSource<Item>(cellIdentifier: "ItemTableViewCell", cellType: ItemTableViewCell.self) { cell, ip, item in
cell.titleLabel.text = item.title
}
items.bind(to: tableView.rx.realmChanges(dataSource)).disposed(by: bag)
上面的代码正常工作,并且项目显示在UITableView
我想执行搜索,以便仅将过滤后的项目显示在UITableView
中。我添加了UISearchBar
并尝试执行以下搜索-
let dataSource = RxTableViewRealmDataSource<Item>(cellIdentifier: "ItemTableViewCell", cellType: ItemTableViewCell.self) { cell, ip, item in
cell.titleLabel.text = item.title
}
searchBar.rx.text
.orEmpty
.asObservable().flatMapLatest { (query) -> Observable<(AnyRealmCollection<Item>, RealmChangeset?)> in
if query.isEmpty {
return Model.getChangesetObservable()
}
return Model.getChangesetObservable(query: query)
}.bind(to: tableView.rx.realmChanges(dataSource)).disposed(by: bag)
加载视图后,所有项目均按预期显示。但是,在搜索栏中键入内容后,UITableView
不会得到更新。
有人可以指出我在做什么错吗?