iOS Swift: SDWebImage 图片加载错误
iOS Swift: SDWebImage Image Loading Error
我正在使用 SDWebImage 将图像加载到分页的水平集合视图中。部分图片未加载并报错 "canceled."
这是我声明单元格的方式:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PHOTOS_CELL_ID, for: indexPath) as! PhotosCell
下面是我如何将图像加载到单元格的图像视图中:
cell.photoImgV.sd_setImage(with: URL(string:photo[Constants.PHOTO_URL] as! String), placeholderImage: nil, options: SDWebImageOptions(rawValue: 0), completed: { (img, err, cacheType, imgURL) in
if err != nil{
print("ERROR LOADING IMAGE: \(err?.localizedDescription ?? "ERRRRoR")")
}
// prints: ERROR LOADING IMAGE: cancelled
我希望有解决办法。
您应该知道 SDWebImage
如何实现他们的 sd_setImage 方法。在方法的开头,调用 sd_cancelImageLoadOperationWithKey
以取消当前请求并使用新的 url.
开始请求
在你的情况下,我想记录错误是因为单元格被重复使用。
当一个单元格显示在屏幕上时,它会启动一个使用 sd_setImage
获取图像的请求。在此请求完成之前,您滚动并使此单元格移出屏幕。此时,你继续滚动,cell 被重用。当前请求未完成时,sd_setImage
与另一个 url 在此单元格上再次调用。正如我上面所说,sd_setImage
在开始新请求之前取消当前请求。
cancelled
记录错误,因为 sd_cancelImageLoadOperationWithKey
在 sd_setImage
方法的开头被调用。
在这种情况下,您不应该关心 cancelled
错误。您的代码 运行 正确。
我正在使用 SDWebImage 将图像加载到分页的水平集合视图中。部分图片未加载并报错 "canceled."
这是我声明单元格的方式:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PHOTOS_CELL_ID, for: indexPath) as! PhotosCell
下面是我如何将图像加载到单元格的图像视图中:
cell.photoImgV.sd_setImage(with: URL(string:photo[Constants.PHOTO_URL] as! String), placeholderImage: nil, options: SDWebImageOptions(rawValue: 0), completed: { (img, err, cacheType, imgURL) in
if err != nil{
print("ERROR LOADING IMAGE: \(err?.localizedDescription ?? "ERRRRoR")")
}
// prints: ERROR LOADING IMAGE: cancelled
我希望有解决办法。
您应该知道 SDWebImage
如何实现他们的 sd_setImage 方法。在方法的开头,调用 sd_cancelImageLoadOperationWithKey
以取消当前请求并使用新的 url.
在你的情况下,我想记录错误是因为单元格被重复使用。
当一个单元格显示在屏幕上时,它会启动一个使用 sd_setImage
获取图像的请求。在此请求完成之前,您滚动并使此单元格移出屏幕。此时,你继续滚动,cell 被重用。当前请求未完成时,sd_setImage
与另一个 url 在此单元格上再次调用。正如我上面所说,sd_setImage
在开始新请求之前取消当前请求。
cancelled
记录错误,因为 sd_cancelImageLoadOperationWithKey
在 sd_setImage
方法的开头被调用。
在这种情况下,您不应该关心 cancelled
错误。您的代码 运行 正确。