当前位置: 首页 > 面试题库 >

通过AlamofireImage下载UIImage?[重复]

于恺
2023-03-14
问题内容

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

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语句。

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


问题答案:

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

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.
}


 类似资料:
  • 问题内容: 我在服务器端有一个Struts2操作,用于文件下载。 但是,当我使用jQuery调用操作时: 在Firebug中,我看到数据是通过 Binary流 检索的。我想知道如何打开 文件下载窗口 ,用户可以用它在本地保存文件吗? 问题答案: 这是我现在建议的一些注意事项: 需要相对较新的浏览器 如果预期文件 很大,则 您可能应该执行与原始方法(iframe和cookie)类似的操作,因为以下某

  • 我试图使简单的文件服务器。我有Node.js后端与MongoDB GridFS存储存储文件。我从服务器获取文件通过。在前端,我使用Angular。我有两个主要问题: 当我使用Blob提供下载服务时,变成:“d1c393df-b0d9-4ae5-befe-8d45b183eb54…”友善的我读了很多关于它的文档,没有找到任何解决方案 当我只通过Express提供下载服务而不进行身份验证时,文件会正确

  • 我举一个url为例: 您可以在浏览器中看到它。 现在我想下载它。我试过: 失败,获取“错误”图片。 失败,获取“错误”图片。 失败了,得到了一张静态照片,我是说,只有一帧。 那么我该怎么做呢?

  • 有人成功地从linux终端下载了wetransfer链接吗? thnx mart

  • 这方面有新的工作吗?

  • 下面是Java样例代码 import java.io.IOException; import com.xiaomi.infra.galaxy.fds.client.FDSClientConfiguration; import com.xiaomi.infra.galaxy.fds.client.GalaxyFDS; import com.xiaomi.infra.galaxy.fds.clien