iOS Swift:SDWebImage图像加载错误

时间:2018-04-28 16:56:03

标签: swift sdwebimage

我正在使用SDWebImage将图像加载到分页水平集合视图中。某些图片未加载,并显示“已取消”错误。

以下是我宣布单元格的方式:

        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

我希望有一个解决方法。

1 个答案:

答案 0 :(得分:1)

您应该知道SDWebImage如何实施他们的sd_setImage方法。在方法的开头,调用sd_cancelImageLoadOperationWithKey来取消当前请求并使用新URL启动请求。

enter image description here

在您的情况下,我猜错误被记录,因为细胞被重复使用。

当屏幕上显示一个单元格时,它会使用sd_setImage启动获取图像的请求。在此请求完成之前,您滚动并使此单元格移出屏幕。此时,您继续滚动并重复使用单元格。当前请求未完成时,在此单元格上再次调用sd_setImage并使用另一个URL。正如我上面所说,sd_setImage在开始新请求之前取消当前请求。

记录

cancelled错误,因为在sd_cancelImageLoadOperationWithKey方法的开头调用了sd_setImage

在这种情况下,您不应该关心cancelled错误。您的代码运行正常。