ios - SDWebImage NSURLRequests 间歇性失败

标签 ios xcode uicollectionview nsurlrequest sdwebimage

我正在使用以下代码使用 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/

相关文章:

ios - 无法将需要作为 UICollectionView 单元格的 View 出队

IOS:代码签名错误

ios - APNS aps-环境-Testflight版本的权利/App的生产版本

ios - Objective C 新头文件标有灰色图标且无法导入框架

ios - 如何注销 FBWebDialogs?

ios - 如何在 Swift 中以编程方式更改 UICollectionViewCell 大小?

iphone - iOS:UIImageView 示例代码

ios - 如何在 sprite kit 中排列对象和重叠?

xcode 不支持运行 ios 12.1 的 iPhone 5s

ios - UICollectionView 水平滚动