【发布时间】:2016-05-08 17:25:16
【问题描述】:
我有一个数组 (Observable<[_]>),它是表格视图的数据源。我希望能够将新元素附加到它,并在每次将新元素附加到数组时更新 tableview。我找不到如何向Observable<[_]> 添加新元素。
【问题讨论】:
我有一个数组 (Observable<[_]>),它是表格视图的数据源。我希望能够将新元素附加到它,并在每次将新元素附加到数组时更新 tableview。我找不到如何向Observable<[_]> 添加新元素。
【问题讨论】:
使用Subject,例如Variable。然后只需将value 属性视为您的Array 和append 即可添加新元素。通过asObservable()订阅Variable。
我已经使用String 简化了代码示例,但是您需要使用某种UITableViewCell。
let dataSource = Variable<[String]>([])
dataSource.value.append("some string A")
dataSource.asObservable()
.subscribeNext { e in
print(e)
}
.addDisposableTo(disposeBag)
dataSource.value.append("some string B")
一旦你有了你的数据源,你会想要通过
将它连接到一个 tableViewdataSource.asObservable().bindTo(yourTableView.rx_itemsWithCellIdentifier("MyCellClass", cellType: MyCellClass.self)) { (row, element, cell) in
// do your cell configuration here
}
【讨论】:
value 来获取BehaviorRelay 的值。然后您可以通过调用accept 附加到它并返回新值。 github.com/ReactiveX/RxSwift/issues/1501#issuecomment-349334148