RxRealmDataSources
此库目前正在进行中。
示例
要运行示例项目,请克隆仓库,然后首先从示例目录运行 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"
待办事项
- 测试添加平台并添加对包的兼容性
许可证
此库属于 RxSwiftCommunity。它由 Marin Todorov 创建。
RxRealm 适用于 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。