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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,054评论 3 119
  • 今天读《跃迁》,有一段话一下子触动了我“如果想集中研究一个话题,最好的方式就是假装自己要写本书,可以列出来这个话题...
    刘婷_71fc阅读 2,578评论 0 0
  • 我是一个从来没有规划过自己人生的人,本着能养活自己、开心就好的原则闯社会,走到哪里算哪里。结果是越混越糟糕,越混越...
    原子丹阅读 2,839评论 1 6
  • 今天就只是早上走路的时候练习了英语口语,晚上回去还需要再温故一下。
    钟鱼Abc阅读 1,445评论 0 0

友情链接更多精彩内容