通过 SdWebImage 设置图像给出“错误代码=-1003”并使用 CFNetwork 诊断日志“Err(-65554)”

Posted

技术标签:

【中文标题】通过 SdWebImage 设置图像给出“错误代码=-1003”并使用 CFNetwork 诊断日志“Err(-65554)”【英文标题】:Setting image through SdWebImage gives “Error code=-1003” and using CFNetwork Diagnostics log "Err(-65554)" 【发布时间】:2019-09-19 13:05:08 【问题描述】:

使用SDWebimage 块生成tableCell 的图像部分:

    [cell.i_imageView 
sd_setImageWithURL:[NSURL URLWithString: item.imageUrl] 
    placeholderImage:[UIImage imageNamed:@"no-image"] 
    options: SDWebImageRefreshCached 
    completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) 

           if(!image)
               NSLog(@"image not loaded %@", error.description);

在大多数情况下,图像加载正常,但有时在 SDwebimage 的完成处理程序中失败时,它会给出这些错误消息“错误代码=-1003”,并且在使用 CFNetwork 诊断日志时会给出“Err(-65554)”。

经过大量研究,我发现这是一个与 DNS 相关的问题,并使用以下方法测试了这一理论,

在实际设备上使用 *** 断开 WIFI 并使用蜂窝数据

对于这些上述技术,图像会再次重新加载,但我不能在运送产品时押注上述两种方法,所以任何 NSURLSession 调用、我可能在这里遗漏的 SdWebImage 方法都可以解决问题,或者可能是为这些特定 URL 打开蜂窝数据的方法

【问题讨论】:

-1003 是 NSURLErrorCannotFindHost 错误。没有互联网连接时的常见错误。 我确定设备连接稳定 【参考方案1】:

原来是使用合作 Wifi ISP 的问题,该 ISP 对一些经过测试的 URL 进行了保留,唯一需要的就是重新连接到新的不同 Wifi 或使用蜂窝网络。

它从未与 SDWebimage 相关

【讨论】:

以上是关于通过 SdWebImage 设置图像给出“错误代码=-1003”并使用 CFNetwork 诊断日志“Err(-65554)”的主要内容,如果未能解决你的问题,请参考以下文章

SDWebImage 使用 Swift 在 CellView 中将图像设置为 UIButton

使用 SDWebImage 处理超大图像的下载

TableCell ImageView 使用 URL 设置图像:SDWebImage:仅调整第一行的大小

SDWebImage无法使用Firebase存储图像下载

Swift - 无法识别的选择器发送到 SDWebImage 方法上的实例

如何从按钮的 imageView 中删除缓存的 SDWebImage