我正在使用以下代码使用 SDWebImage 从远程服务器加载图像到 UICollectionView 中:
[myCell.imageView setImageWithURL:imgURL placeholderImage:nil options:SDWebImageRetryFailed success:^(UIImage *image)
{
[_imageCache storeImage:image forKey:[imgURL absoluteString] toDisk:YES];
} failure:^(NSError *error){
NSLog(@"ERROR: %@", error);
}];
对于大多数单元格,此代码工作正常 - 它加载图像并将它们保存到我的本地磁盘。然而,在几张(似乎是随机的?)图像之后,它们停止加载。然后我收到以下错误:
ERROR: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x1d33fdc0 {NSErrorFailingURLStringKey=http://path/to/image.jpg, NSErrorFailingURLKey=http://path/to/image.jpg, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x1d34c0f0 "The request timed out."}
发生这种情况时,我的应用程序似乎完全停止发送 NSURLRequests。一段时间后,大概 20 到 30 秒,我可以刷新表格,失败的图像将正确加载,应用将恢复对所有 NSURLRequest 的完美响应。
我发现如果我快速向下滚动我的收藏 View ,这种情况往往会更频繁地发生。它会不会试图一次下载太多?有没有办法限制并发下载的数量?在最新的 SDWebImage 代码中似乎已弃用此方法。
最佳答案
想通了。我在应用程序的另一部分使用 MWPhotoBrowser。 MWPhotoBrowser 带有旧版/修改版的 SDWebImage。我从 Github 下载了最新版本的 SDWebImage,重命名/重构了所有文件,并将我新更新和修改的 SDWebImage 与 MWPhotoBrowser 所依赖的那个一起导入。
新版SDWebImage彻底解决了我的问题!
关于ios - SDWebImage NSURLRequests 间歇性失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201858/