gpt4 book ai didi

ios - 在 RxSwift 中将 [Observable] 转换为 Observable<[T]>

转载 作者:行者123 更新时间:2023-11-28 11:27:33 26 4
gpt4 key购买 nike

这是我的实现。

我有favCitiesID = Observable<[Int]>那将是 flatMap 和 map 。每个城市 ID 都将在返回 Observable<CityMappable> 的 API 调用中使用。 .我已经到了可以得到 [Observable<CityMappable>] 的地步但我想把它变成 Observable<[CityMappable]>所以我可以将它绑定(bind)到 tableview 数据源。

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>

最佳答案

您可以使用 combine 将 [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)
}

关于ios - 在 RxSwift 中将 [Observable<T>] 转换为 Observable<[T]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com