SDWebImage 在设置提到的 url 中的图像时抛出错误
SDWebImage throws an error when setting the image from the url mentioned
当我尝试使用 SDWebImage
从以下 url 设置图像时,出现以下错误:-
URL :-
https://s3.ap-south-1.amazonaws.com/quickride1/1563967975923.png
Error
:- Error Domain=SDWebImageErrorDomain Code=2001 "(null)"
UserInfo={SDWebImageErrorDownloadStatusCodeKey=404}
不知道为什么会出现这个问题。任何解决方案提前致谢
已经浏览了几个关于 sdwebimage 和文档的教程,但是 none 解决了我的问题
public func setImageToView(imageView : UIImageView, imageUrl : String?,gender : String){
AppDelegate.getAppDelegate().log.debug("setImageToView() \(gender)")
if imageUrl == nil || imageUrl?.isEmpty == true || QRSessionManager.getInstance()?.getUserId() == nil || QRSessionManager.getInstance()?.getUserId().isEmpty == true {
imageView.image = getDefaultUserImage(gender: gender)
return
}
let URL = NSURL(string: imageUrl!)
if URL == nil
{
imageView.image = getDefaultUserImage(gender: gender)
return
}
imageView.sd_imageIndicator = SDWebImageActivityIndicator.gray
imageView.sd_setImage(with: URL! as URL, placeholderImage: nil , options: SDWebImageOptions(rawValue: 0)) { (image, error, cacheType, url) in
AppDelegate.getAppDelegate().log.debug("Image :- \(image),error :- \(error),cacheType :- \(cacheType),url :- \(url)")
if error != nil{
imageView.image = self.getDefaultUserImage(gender: gender)
return
}
self.checkAndSetCircularImage(imageView: imageView, image: image)
}
}
我不知道你的问题是什么,我检查了 link,一切正常,这是我的代码
guard
let url = URL(string: "https://s3.ap-south-1.amazonaws.com/quickride1/1563967975923.png")
else {
return
}
imageView.sd_setImage(with: url) { (image, error, cacheTRype, url) in
print(error?.localizedDescription ?? "no error loading image")
}
刚刚尝试了您的代码,一切正常:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let imgURL = "https://s3.ap-south-1.amazonaws.com/quickride1/1563967975923.png"
setImageToView(imageView : imageView, imageUrl : imgURL,gender : "Male")
}
public func setImageToView(imageView : UIImageView, imageUrl : String?,gender : String){
let URL = NSURL(string: imageUrl!)
imageView.sd_imageIndicator = SDWebImageActivityIndicator.gray
imageView.sd_setImage(with: URL! as URL, placeholderImage: nil , options: SDWebImageOptions(rawValue: 0)) { (image, error, cacheType, url) in
if error != nil{
print(error)
return
}
}
}
错误信息包含两个信息:
1) SDWebImageErrorDomain Code=2001
,其中 SDWebImageError.h
文件说:
SDWebImageErrorInvalidDownloadStatusCode = 2001,
// The image downloda response a invalid status code. You can check the status code in error's userInfo under `SDWebImageErrorDownloadStatusCodeKey`
2) UserInfo={SDWebImageErrorDownloadStatusCodeKey=404}
:
显然是 Not Found error
看来您的设备/模拟器没有到达图像。
具体发生在什么时候?您确定没有多次调用此方法或使用格式错误的图片网址吗?
编辑
imageView.sd_cancelCurrentImageLoad()
之前再次调用该方法解决了问题
我遇到了同样的问题,在查看后发现我正在尝试使用 URL 的 webImage,这对我的应用程序特别无效。
当我试图从 firebase 存储中获取图像 URL 时发生了这种情况,结果证明这是错误的存储。
当我尝试使用 SDWebImage
从以下 url 设置图像时,出现以下错误:-
URL :- https://s3.ap-south-1.amazonaws.com/quickride1/1563967975923.png Error :- Error Domain=SDWebImageErrorDomain Code=2001 "(null)" UserInfo={SDWebImageErrorDownloadStatusCodeKey=404}
不知道为什么会出现这个问题。任何解决方案提前致谢
已经浏览了几个关于 sdwebimage 和文档的教程,但是 none 解决了我的问题
public func setImageToView(imageView : UIImageView, imageUrl : String?,gender : String){
AppDelegate.getAppDelegate().log.debug("setImageToView() \(gender)")
if imageUrl == nil || imageUrl?.isEmpty == true || QRSessionManager.getInstance()?.getUserId() == nil || QRSessionManager.getInstance()?.getUserId().isEmpty == true {
imageView.image = getDefaultUserImage(gender: gender)
return
}
let URL = NSURL(string: imageUrl!)
if URL == nil
{
imageView.image = getDefaultUserImage(gender: gender)
return
}
imageView.sd_imageIndicator = SDWebImageActivityIndicator.gray
imageView.sd_setImage(with: URL! as URL, placeholderImage: nil , options: SDWebImageOptions(rawValue: 0)) { (image, error, cacheType, url) in
AppDelegate.getAppDelegate().log.debug("Image :- \(image),error :- \(error),cacheType :- \(cacheType),url :- \(url)")
if error != nil{
imageView.image = self.getDefaultUserImage(gender: gender)
return
}
self.checkAndSetCircularImage(imageView: imageView, image: image)
}
}
我不知道你的问题是什么,我检查了 link,一切正常,这是我的代码
guard
let url = URL(string: "https://s3.ap-south-1.amazonaws.com/quickride1/1563967975923.png")
else {
return
}
imageView.sd_setImage(with: url) { (image, error, cacheTRype, url) in
print(error?.localizedDescription ?? "no error loading image")
}
刚刚尝试了您的代码,一切正常:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let imgURL = "https://s3.ap-south-1.amazonaws.com/quickride1/1563967975923.png"
setImageToView(imageView : imageView, imageUrl : imgURL,gender : "Male")
}
public func setImageToView(imageView : UIImageView, imageUrl : String?,gender : String){
let URL = NSURL(string: imageUrl!)
imageView.sd_imageIndicator = SDWebImageActivityIndicator.gray
imageView.sd_setImage(with: URL! as URL, placeholderImage: nil , options: SDWebImageOptions(rawValue: 0)) { (image, error, cacheType, url) in
if error != nil{
print(error)
return
}
}
}
错误信息包含两个信息:
1) SDWebImageErrorDomain Code=2001
,其中 SDWebImageError.h
文件说:
SDWebImageErrorInvalidDownloadStatusCode = 2001,
// The image downloda response a invalid status code. You can check the status code in error's userInfo under `SDWebImageErrorDownloadStatusCodeKey`
2) UserInfo={SDWebImageErrorDownloadStatusCodeKey=404}
:
显然是 Not Found error
看来您的设备/模拟器没有到达图像。
具体发生在什么时候?您确定没有多次调用此方法或使用格式错误的图片网址吗?
编辑
imageView.sd_cancelCurrentImageLoad()
之前再次调用该方法解决了问题
我遇到了同样的问题,在查看后发现我正在尝试使用 URL 的 webImage,这对我的应用程序特别无效。
当我试图从 firebase 存储中获取图像 URL 时发生了这种情况,结果证明这是错误的存储。