始终从URL加载UIImage时出错

时间:2016-09-20 10:23:33

标签: ios swift uiimage swift3 xcode8

当我尝试从网址加载图片时,我总是会收到错误,尽管我知道有一个包含有效.jpg图像的网址。

mainImageView.image = try UIImage(data: Data(contentsOf: URL(fileURLWithPath: artworkURL)))

我也试过these solution,但我初始化UIImage的行仍然会出错。

artworkURL中的数据示例:

http://is1.mzstatic.com/image/thumb/Music/v4/ef/97/95/ef979538-8321-151a-dceb-9b0a7f7c7641/source/100x100bb.jpg

目前的解决方案无法解决我的问题。我也尝试过:

try UIImage(data: Data(contentsOf: URL(string: artworkURL)!))

try UIImage(data: Data(contentsOf: (URL : artworkURL)))

和(更全面的代码)现在使用静态网址进行调试

let artworkString = "http://is1.mzstatic.com/image/thumb/Music/v4/ef/97/95/ef979538-8321-151a-dceb-9b0a7f7c7641/source/100x100bb.jpg" // album.artworkURL[index.row]
let url = URL(string: artworkString)

do {
    mainImageView.image = try UIImage(data: Data(contentsOf: url!))
} catch _ {
    print("No album artwork!")
}

最后一个输出"No album artwork!"

1 个答案:

答案 0 :(得分:0)

您可以使用此库:

https://github.com/onevcat/Kingfisher

  

Kingfisher是一个轻量级的纯Swift库,用于从网上下载和缓存图像。该项目受到流行的SDWebImage的启发。它为您提供了在下一个应用程序中使用纯Swift替代品的机会。

let imagePath = URL(string: "url_of_your_image")    
imageView.kf_setImageWithURL(NSURL(string: imagePath)!, placeholderImage: UIImage(named: "placeholder"))

您还可以添加占位符图片。