我正在使用 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 的响应。
我发现如果我快速向下滚动我的收藏视图,这种情况往往会更频繁地发生。会不会尝试一次下载太多?有没有办法限制并发下载的数量?此方法似乎在最新的 SDWebImage 代码中已被弃用。