如何使用 RxAlamofire 下载图像
Posted
技术标签:
【中文标题】如何使用 RxAlamofire 下载图像【英文标题】:How to download image using RxAlamofire 【发布时间】:2019-08-18 13:17:26 【问题描述】:func showImageForUrl(url: String) -> Observable<Async<Any>>
let result = RxAlamofire
.requestJSON(.get,
url,
parameters: nil)
.flatMap (response, json) -> Observable<Any> in
return Observable.just(json)
.async()
return result
网址字符串“http://1.bp.blogspot.com/-KhiJ6WYQn8Q/T7ZXxb_KHxI/AAAAAAAABvM/_l134PCuEcA/s1600/dog+photos+3.jpg”
我正在尝试,但最终结果是一个错误。
【问题讨论】:
【参考方案1】:我认为问题之一是您请求的格式:下载数据然后将其转换为图像应该是requestData(...)
而不是requestJSON(...)
。
这是一个比前面的代码简单一点的例子
func showImageForUrl(url: String) -> Observable<UIImage?>
return RxAlamofire
.requestData(.get, url)
.map( (response,data) -> UIImage? in
return UIImage(data: data)
)
你可以如下使用它
showImageForUrl(myUrl)
.bind(to: myImageView.rx.image)
.disposed(by: disposeBag)
当无效响应或UIImage
为 nil 等时,您可以进一步过滤。希望对您有所帮助。
【讨论】:
以上是关于如何使用 RxAlamofire 下载图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 RxAlamofire 或 Alamofire 5 及更高版本检查相同的 DataRequest 是不是已经在进行中? [关闭]