我正在尝试从URL下载图像,但是图像无法加载。
我将该类从Objective-C移植到swift,并且代码的这一特定部分停止工作。我的网址看起来像这样。有人可以告诉我我在做什么错吗?
https://mydomain-files.s3.amazonaws.com/files/log/773/IMG_20200408_125029.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=mycredentials%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200413T171303Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=mysignature
cell.previewImageView.sd_setImage(with: url, placeholderImage: UIImage(named: "nodata"), completed: { image, error, cacheType, imageURL in
if image != nil {
cell.previewImageView.image = image
}
})
我已经尝试过仅使用https://mydomain-files.s3.amazonaws.com/files/log/773/IMG_20200408_125029.jpg
这部分,但也不起作用。图像可以在Volley for Android
和浏览器内部正常加载。
Error Domain=SDWebImageErrorDomain Code=1001 "Downloaded image has 0 pixels" UserInfo={NSLocalizedDescription=Downloaded image has 0 pixels})
显然,由于未加载图像,因此它表示image
为nil
。
我建议您将代码转换为以下代码并适当处理错误:
cell.previewImageView.sd_setImage(with: url, placeholderImage: UIImage(named: "nodata"), completed: { image, error, cacheType, imageURL in
if let error = error {
// Handle errors here
// It may be as simple as forgetting to whitelist S3 url in Info.plist
}
else if image != nil {
cell.previewImageView.image = image
}
})
如果没有错误,请检查其他变量的内容-它们可能会为您提供有关发生问题的线索。