RxSwiftで最新バージョンのMoyaを使用していますが、解決策が見つからないという論理的な問題が発生しました。RxMoyaでリクエストを繰り返す
のは、私は、次のインタフェースを実装するのViewModelでのUITableViewControllerを持っているとしましょう:
protocol ListViewModelType {
var items: Observable<[Item]> { get }
}
items
プロパティが(EVReflectionを使用して)として実装されていますのviewDidLoadメソッドで
var items: Observable<[Therapy]> {
get {
let provider = RxMoyaProvider<ItemService>()
return provider
.request(.all)
.map(toArray: Item.self)
}
}
UITableViewControllerを使って、itemsプロパティと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
私は本当にそれを行うためのポイントが表示されません。最初にオフラインではない –
まあ、サーバーの回答が時間とともに変化する状況をサポートすることがポイントです。 ObservablesはデータのストリームとIMHOとして記述されていますが、これはまさに私がここにあるものです。リフレッシュするたびに新しい値を放出するデータストリームです。 – MrAsterisco