我是 Swift 的新手,我在项目中使用Alamofire
框架,在发出下载图像请求时遇到以下问题,我使用以下代码:
let imageURL = Constant.BaseAPI_URL + "/" + driver.driverProfile
Alamofire.request(.GET, imageURL).response() {
(_, _, data, _) in
let image = UIImage(data: data! as! NSData)
deiverProfileImageView.image = image
}
问题:
单击此处查看图像描述
试试这个:
let imageURL = Constant.BaseAPI_URL + "/" + driver.driverProfile
Alamofire.download(imageURL).responseData { response in
if let data = response.result.value {
let image = UIImage(data: data)
deiverProfileImageView.image = image
}
}
尝试以下代码
let imageURL = Constant.BaseAPI_URL + "/" + driver.driverProfile
Alamofire.request(imageURL).responseData(completionHandler: { response in
if let imageData = response.data
{
deiverProfileImageView.image = imageData
}
})
试试这个:
let imageUrl = "www.your_url.com">
Alamofire.download(imageUrl).responseData {
response in
if let data = response.result.value {
let image = UIImage(data: data)
ProfileImage.image = image
}
}
或
据我说,最简单的方法是使用SDWebImage
将此添加到您的 pod 文件
pod 'SDWebImage', '~> 4.0'
运行容器安装
现在导入 SDWebImage
import SDWebImage
现在用于从网址设置图像
imageView.sd_setImage(with: URL(string: "http://www.domain/path/to/image.jpg"), placeholderImage: UIImage(named: "placeholder.png"))
它将显示占位符图像,但是当下载图像时,它将显示来自url的图像。您的应用程序永远不会崩溃
这是SDWebImage的主要功能
UIImageView,UIButton,MKAnnotationView添加Web图像和缓存管理的类别
异步图像下载器
具有自动缓存过期处理功能的异步内存 + 磁盘映像缓存
背景图像解压缩
保证同一 URL 不会被多次下载
保证虚假网址不会一次又一次地重试
保证主线程永远不会被阻塞 性能!
使用 GCD 和 ARC
了解更多 https://github.com/rs/SDWebImage