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

在使用SDWebImage加载多个网络高清图片时,出现内存崩溃问题。通过检查发现,高清大图直接加载导致内存无法及时释放。解决方案是在图片加载前进行等比压缩,减少了内存占用,从而避免了软件闪退。通过在UIImage+MultiFormat类别中添加压缩方法并在sd_imageWithData:方法中调用,成功解决了崩溃问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

接着就是修改历程了。

图1

                                                                                       图1 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值