我是响应式编程的新手,在从特定索引过滤和访问对象时遇到困难。下面是我的代码片段。
private var contacts: Observable<(AnyRealmCollection<Contact>, RealmChangeset?)>!
override func viewDidLoad() {
super.viewDidLoad()
contacts = Observable.changeset(from: contactViewModel.getDeviceContacts())
let dataSource = RxCollectionViewRealmDataSource<Contact>(cellIdentifier: "SendFeedContactCell", cellType: ContactCollectionCell.self) {cell, ip, contact in
cell.configure(contact)
}
contacts
.bindTo(collectionView.rx.realmChanges(dataSource))
.addDisposableTo(disposeBag)
searchBar
.rx.text
.orEmpty
.subscribe(onNext: { [unowned self] query in
// Filter query - doesn't work!
// self.contacts.filter({ (observable) -> Bool in
// observable.0.filter(NSPredicate(format: "name CONTAINS[c] '\(query)'"))
// })
})
.addDisposableTo(disposeBag)
collectionView.rx.itemSelected
.subscribe(onNext: { indexPath in
// TODO: How to access a specific object from the contacts object
})
.addDisposableTo(disposeBag)
}
我在搜索栏中收到查询,但过滤似乎不起作用。
当在集合视图中选择一个项目时,我得到了 IndexPath,但我想知道如何根据索引路径访问特定的模型属性。
我正在使用RxRealm和RxRealmDataSources,因为我的数据存储在设备的领域数据库中。