【问题标题】:How to download image using RxAlamofire如何使用 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

我正在尝试,但最终结果是一个错误。

【问题讨论】:

    标签: swift rx-swift rxalamofire


    【解决方案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 等时,您可以进一步过滤。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      相关资源
      最近更新 更多