我使用SDWebImage成UICollectionView使用下面的代码在远程服务器加载图像:SDWebImage NSURLRequests没有间歇
[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的响应。
我发现这往往会更频繁地发生,如果我快速向下滚动我的收藏视图。它可能试图一次下载太多吗?有没有办法限制并发下载的数量?此方法在最新的SDWebImage代码中似乎不推荐使用。
不幸的是,这种方法会产生同样的问题:(另外,这两种方法都可以在iOS模拟器中完美工作 - 它只存在于出现问题的设备上。是否有一种方法可以一次仅加载10个图像,然后下一个10,etc? – 2013-04-24 21:58:33
看到我的编辑答案! – strong 2013-04-24 23:12:57
实施您编辑的答案,并得到相同的错误 – 2013-04-25 15:53:42