美文网首页iOS Developer故事程序员
关于SDWebImage加载多个网络高清图片内存崩溃问题

关于SDWebImage加载多个网络高清图片内存崩溃问题

作者: 我是小五 | 来源:发表于2018-07-21 10:54 被阅读68次

SDWebImage大家都很熟悉了,大部分的APP加载图片使用的都是这个框架。

但是最近在使用这个框架加载图片的时候,出现了这样一个问题“Terminated due to memory issue”。刚开始的时候并不知道是因为图片的问题,就一直用instrument里面的工具调试了好久。后来才发现,在接口里返回的数据全部是高清大图,都是好几兆以上。然后把加载图片的代码全部注释,果然我的猜测是正确的,SDWebImage加载多个网络高清大图会导致软件直接闪退。

接着就是修改历程了。

图1

我发现在这里,就是图1中所标注的1的位置,图片取出来的时候就已经巨大无比,占用了很大的内存,导致内存来不及释放就崩溃,因为这里的图片的处理都是按原大小进行的。(注释:图1中所标注的2是后来的修改内容)

知道了问题所在,就可以很方便的修改啦,修改的策略就是如图1中所标注的2一样,在这里对图片进行一次等比压缩。

我们在UIImage+MultiFormat这个类里面添加如下压缩方法

图2

将这个压缩方法添加完之后,在sd_imageWithData:data这个方法里面调用就可以了(如图1所示)。

这样崩溃问题就解决了,是不是很方便呢❤️


结尾:以上就是关于SDWebImage加载多个网络高清图片内存崩溃问题的解决方法,如有不当之处,欢迎指正😁

END

相关文章

网友评论

  • a543ec5df5c3:你这个方法,1,改pod 的库比较蛋疼,2,项目里所有加载图片的地方都被压缩了
  • 棍武中原:你试过,可以?
    我是小五:我之前的项目出错是这样解决的 ,但是也要具体问题具体分析。

本文标题:关于SDWebImage加载多个网络高清图片内存崩溃问题

本文链接:https://www.haomeiwen.com/subject/kethmftx.html