SDWebimage 加载大量图片的时候内存泄露的解决方法(ios自学笔记)

SDWebImage这里不用多讲,都用过!!!

但是最近在使用过程中发现,在UITableView中不断加载更多的内容,使用SDWebImage会造成内存占用越来越大,稍微找了下问题原因,发现不少开发者都遇到过这个问题,中文的资料没有搜到该问题的解决办法,为了方便国内其他开发者遇到类似问题不浪费时间,这篇blog把解决方法记录如下:

首先检查了SDWebImage代码中对于memory warning的处理:

- (void)clearMemory {
    [self.memCache removeAllObjects];
}

其中self.memCache是NSCache类型的,可以看到SDWebImage本身对内存警告执行了操作,但是并没有什么X用。

用Instruments的allocations分析了一下内存使用情况:技术分享

 

可以看到内存基本都在decodedImageWithImage:这个方法里被占用了

解决方法如下:

添加#import "SDImageCache.h"头文件

在使用SDWebImage加载较多图片造成内存警告时,定期调用

我这边是在上拉刷新的方法里面加入

 [[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];

即可解决。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangyang6275

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值