Ich habe auf der Suche Controller arbeiten, die RxSwift verwendet Datasource zu aktualisieren, wenn Benutzer in Suchfeld, wie es hier beschrieben ist: http://www.thedroidsonroids.com/blog/ios/rxswift-examples-3-networking/RxSwift: Beobachten rx_text & rx_offset gleichzeitig
Das ist mein Viewmodel ist:
struct SearchControllerViewModel {
let provider: RxMoyaProvider<ThreadifyEndpoint>
let startsWith: Observable<String>
func startSearching() -> Observable<[SearchedNodeViewModel]> {
return startsWith
.observeOn(MainScheduler.instance)
.flatMapLatest { query -> Observable<[SearchedNodeViewModel]?> in
return self.findNodes(query)
}.replaceNilWith([])
}
internal func findNodes(startsWith: String) -> Observable<[SearchedNodeViewModel]?> {
return self.provider
.request(ThreadifyEndpoint.SearchForNodes(startsWith: startsWith))
.mapArrayOptional(SearchedNodeViewModel.self)
}
}
Jetzt möchte ich, dass neue Daten nicht nur geladen werden, wenn der Benutzer tippt, sondern auch, wenn sh scrollt. Ich dachte, combineLatest zu verwenden, um sowohl rx_text als auch rx_offset zu beobachten, aber ich kann Observable nicht an compileLatest wegen Kompilierungsfehler übergeben.
Was ist der Kompilierungsfehler? combineLatest benötigt mehrere Observables, das ist also merkwürdig. – solidcell
@solidcell Kann 'CombineLatest' nicht mit einer Argumentliste des Typs (Observable, Observable ) –
alexxjk
aufrufen Ich habe unten beantwortet. Wenn Sie Ihre Swift-Fragen mit einem 'swift'-Tag markieren, erhalten Ihre Fragen (und die Antworten) Syntax-Highlighting. – solidcell