これが私の実装です。
私はfavCitiesID = Observable<[Int]>
それがflatMapとmapになるでしょう。各都市IDは、を返すAPI呼び出しで使用されますObservable<CityMappable>
。取得できるよう[Observable<CityMappable>]
になりましObservable<[CityMappable]>
たが、テーブルビューデータソースにバインドできるように変換したいと思います。
let favCitiesID: Observable<[Int]> = Observable.of([0,1,2])
let observableCities = favCitiesID.flatMap { cityIds -> Observable<[CityMappable]> in
return cityIds.map{ return self.apiManager.getCurrentWeatherData(for: $0)}
}
これはAPIManager関数の定義です
func getCurrentWeatherData(for cityID: Int)->Observable<CityMappable>
あなたはから変換するために組み合わせて使用することができます[Observable<CityMappable>]
しますObservable<[CityMappable]>
。
このコードを試してください
let observableCities = favCitiesID.flatMap { cityIds -> Observable<[CityMappable]> in
let obs = cityIds.map{ return self.apiManager.getCurrentWeatherData(for: $0)}
return Observable.combineLatest(obs)
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加