Meh*_*een 10
我发现了这个问题.我的阵列没有正确更新.我做了以下更改.
声明dataSourceModelClass的变量:
let dataSource = Variable<[SearchResult]>([])
Run Code Online (Sandbox Code Playgroud)
现在将它与表视图绑定为空:
dataSource.asObservable().bindTo(ResultsTable.rx.items(cellIdentifier: "SearchCell")){ row,Searchplace,cell in
if let C_cell = cell as? SearchTableViewCell{
C_cell.LocationLabel.text = Searchplace.place
}
}.addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)
然后将包含searchPlaces的更新数组存储在其中:
dataSource.value = self.array
Run Code Online (Sandbox Code Playgroud)
现在,每次更改dataSource的值时,将重新加载表视图.
小智 7
避免使用“变量”,因为这个概念将从 RxSwift 中被弃用,但官方迁移路径尚未确定。
参考:https : //github.com/ReactiveX/RxSwift/issues/1501
因此,推荐使用 RxCocoa.BehaviorRelay 代替。
let dataSource = BehaviorRelay(value: [SearchResultModel]())
Run Code Online (Sandbox Code Playgroud)
绑定到 tableView
self.dataSource.bind(to: self.tableView.rx.items(cellIdentifier: "SearchCell", cellType: SearchCell.self)) { index, model, cell in
cell.setupCell(model: model)
}.disposed(by: self.disposeBag)
Run Code Online (Sandbox Code Playgroud)
获取数据后:
let newSearchResultModels: [SearchResultModel] = ..... //your new data
dataSource.accept(newSearchResultModels)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助:)
| 归档时间: |
|
| 查看次数: |
8761 次 |
| 最近记录: |