我正在使用 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 秒,我可以刷新表格,失败的图像将正确加载,应用程序将恢复对所有 NSURLRequests 的响应。
我发现如果我快速向下滚动我的收藏 View ,这种情况往往会更频繁地发生。会不会尝试一次下载太多?有没有办法限制并发下载的数量?此方法在最新的 SDWebImage 代码中似乎已被弃用。
Best Answer-推荐答案 strong>
想通了。我在我的应用程序的另一部分使用 MWPhotoBrowser。 MWPhotoBrowser 带有旧版/修改版的 SDWebImage。我从 Github 下载了最新版本的 SDWebImage,重命名/重构了所有文件,并将我新更新和修改的 SDWebImage 与 MWPhotoBrowser 所依赖的文件一起导入。
新版SDWebImage彻底解决了我的问题!
关于ios - SDWebImage NSURLRequests 间歇性失败,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/16201858/
|