RxRealmDataSources-JX 0.2.10-jx1

RxRealmDataSources-JX 0.2.10-jx1

tospery 维护。



 
依赖关系
RealmSwift~> 4.0
RxSwift~> 5.0
RxCocoa~> 5.0
RxRealm~> 2.0
 

  • YangJianxiang

RxRealmDataSources

Version License Platform

此库目前正在进行中。

示例

要运行示例项目,请克隆仓库,然后首先从示例目录运行 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)

安装

此库依赖于 RxSwiftRealmSwiftRxRealm

CocoaPods

RxRealm 可通过 CocoaPods 获得。要安装它,请将以下行添加到您的 Podfile 中

pod "RxRealmDataSources"

待办事项

  • 测试添加平台并添加对包的兼容性

许可证

此库属于 RxSwiftCommunity。它由 Marin Todorov 创建。

RxRealm 适用于 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。