一尘不染

通过AlamofireImage下载UIImage?[重复]

swift

我有一个网址,想通过返回函数下载图像,但是我无法使其正常配合,这是我的功能:

func getTabImage(url: URL) -> UIImage {
    Alamofire.request(url)
        .responseImage { response in
            if let image = response.result.value {
                return image
            } else {
                print("Failed to get image")
            }
    }
}

我传入URL,并希望从alamofire响应返回UIImage。

但是我明白了

void函数中非预期的非无效返回值

对于return语句。

我怎样才能正确地做到这一点?


阅读 242

收藏
2020-07-07

共1个答案

一尘不染

您可以使用以下功能下载图像:

func getImage(_ url:String,handler: @escaping (UIImage?)->Void) {
        print(url)
        Alamofire.request(url, method: .get).responseImage { response in
            if let data = response.result.value {
                handler(data)
            } else {
                handler(nil)
            }
        }
    }

用途

getImage("http://") { (image) in
    if image != nil {
        print(image)
    }
}

要么

如果要UIImageView使用AlamofireImage扩展名设置图像。

if let imageURL = URL(string: "http://"), let placeholder = UIImage(named: "default") {
     imageView.af_setImage(withURL: imageURL, placeholderImage: placeholder) //set image automatically when download compelete.
}
2020-07-07