1
我在RxSwift中使用最新版本的Moya,而且我遇到了一個邏輯問題,目前我找不到解決方案。RxMoya中的重複請求
比方說,我有一個實現了以下接口視圖模型一個UITableViewController:
protocol ListViewModelType {
var items: Observable<[Item]> { get }
}
的items
屬性被實現爲(使用EVReflection):
var items: Observable<[Therapy]> {
get {
let provider = RxMoyaProvider<ItemService>()
return provider
.request(.all)
.map(toArray: Item.self)
}
}
在viewDidLoad方法在UITableViewController中,我已經通過以下代碼建立了項目屬性和tableView之間的綁定:
self.viewModel.items
.bind(to: tableView.rx.items(cellIdentifier: cellIdentifier, cellType: cellType)) { row, element, cell in
// cell configuration code
}
.disposed(by: self.disposeBag)
現在,我想刷新UITableView的內容以反映用戶通過應用程序的其他部分完成的更改。考慮到RxMoyaProvider返回一個Observable,這應該很容易通過Observable發出的另一個值完成,但我不知道如何與提供者通信,它應該刷新服務器的內容並將其放入相同的Observable中。
我失去了一些東西在這裏?有沒有更好的方法將UITableView綁定到來自RxMoyaProvider的對象列表?
好吧,我看到你的下線爲先的原則點,但目前是要求和我之外更喜歡堅持在線。你提出的方法看起來很像一個黑客...你確定沒有辦法使用其他的東西來實現這個,比如MoyaProvider的包裝器,也許吧? – MrAsterisco
我真的不明白這一點。沒有首先脫機 –
好的,重點是支持服務器的答案可能隨時間而改變的情況。可觀察物被描述爲數據流和恕我直言,這正是我在這裏所得到的:一個數據流,每當我要求它刷新時就會發出一個新值。 – MrAsterisco