RxRealmDataSources
这个库目前是 WIP。
示例
要运行示例项目,请先克隆仓库,然后从 Example 目录中运行 pod install
。
用法
这是一个为 RxRealm
提供的轻量级数据源实现。它允许您轻松地将一系列 Realm 对象绑定到表格或集合视图中。该库同时兼容 iOS 和 macOS。
绑定到表格视图
查看附带的应用程序以了解其实际应用。
// create data source
let dataSource = RxTableViewRealmDataSource<Lap>(cellIdentifier: "Cell", cellType: PersonCell.self) {cell, ip, lap in
cell.customLabel.text = "\(ip.row). \(lap.text)"
}
// RxRealm to get Observable<Results>
let realm = try! Realm(configuration: DataRandomizer.realmConfig)
let laps = Observable.changeset(from: realm.objects(Timer.self).first!.laps)
.share()
// bind to table view
laps
.bindTo(tableView.rx.realmChanges(dataSource))
.disposed(by: bag)
绑定到集合视图
查看附带的应用程序以了解其实际应用。
// create data source
let dataSource = RxCollectionViewRealmDataSource<Lap>(cellIdentifier: "Cell", cellType: LapCollectionCell.self) {cell, ip, lap in
cell.customLabel.text = "\(ip.row). \(lap.text)"
}
// RxRealm to get Observable<Results>
let realm = try! Realm(configuration: DataRandomizer.realmConfig)
let laps = Observable.changeset(from: realm.objects(Timer.self).first!.laps)
.share()
// bind to collection view
laps
.bindTo(collectionView.rx.realmChanges(dataSource))
.disposed(by: bag)
响应单元格点击
该库为表格视图和集合视图添加了扩展,允许您轻松订阅单元格选择代理事件。以下为示例演示应用中的代码片段。
tableView.rx.realmModelSelected(Lap.self)
.map({ $0.text })
.bind(to: rx.title)
.disposed(by: bag)
安装
此库依赖于 RxSwift,RealmSwift 和 RxRealm。
CocoaPods
RxRealm 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中。
pod "RxRealmDataSources"
待办事项
- 测试添加平台和添加对 pod 的兼容性。
许可证
这个库属于 RxSwiftCommunity,由 Marin Todorov 创建。
RxRealm 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。