RxRealmDataSources 0.3

RxRealmDataSources 0.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2020年6月
SPM支持 SPM

Marin TodorovRxSwift Community 维护。



 
依赖项
RealmSwift~> 5.1
RxSwift~> 5.1
RxCocoa~> 5.1
RxRealm~> 3.0
 

  • Marin Todorov

RxRealmDataSources

Version License Platform

这个库目前是 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)

安装

此库依赖于 RxSwiftRealmSwiftRxRealm

CocoaPods

RxRealm 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中。

pod "RxRealmDataSources"

待办事项

  • 测试添加平台和添加对 pod 的兼容性。

许可证

这个库属于 RxSwiftCommunity,由 Marin Todorov 创建。

RxRealm 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。