SDWebImage崩溃问题

昨天开发的时候碰到的问题,一个图文混排的页面,动态加载图片(图片数量是根据后台返回加载,请求数据前不知道图片数量)。

本来一个很简单的页面,由于测试后台一个请求返回了180张图片,直接导致崩溃。

中间还绕了一段弯路:由于崩溃的时候控制台打印的信息是:

pbitemcollectionservicer connection disconnected。

搜索后以为是跟其他开发者碰到一样的类似于:第三方登录时 授权后不回调的原因,这种问题。
调试了半天发现没有任何效果,然后开始怀疑是图片显示问题。因为用的是SDWebImage控件,所以网上搜了关于SDWebImage的崩溃问题,找到两个比较接近的解决办法:
http://www.cnblogs.com/ziip/p/4664234.html
http://blog.csdn.net/x1198928367/article/details/52423448
然后参考以上解决方法,问题解决。
同时,对于上面文章说的:
第三步:
就是在SDWebImageDownloaderOperation的connectionDidFinishLoading方法里面的:
  UIImage  *image = [ UIImage   sd_imageWithData : self . imageData ];

  NSString *key = [[SDWebImageManager sharedManagercacheKeyForURL:self.request.URL];

  image = [self scaledImageForKey:key image:image];

  NSData *data = UIImageJPEGRepresentation(image, 1);

  self.imageData = [NSMutableData dataWithData:data];

这一步,可能是代码版本不一样,我的代码没有以上代码,所以直接忽略。
图片显示问题得以解决。

对于这样看似简单的需求,有时候是要考虑一下实现的方案,同时还需要考虑一些极端情况。所以在完成以上修改后,还做了一些优化操作,就是对返回的数据量进行判断,如果要显示的图片数量很大,就进行类似与翻页处理,不要把图片一次性全部加到tableview里面去。

你可能感兴趣的:(iOS)