您的位置:首页 > 移动开发 > IOS开发

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

2015-12-21 10:13 489 查看
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"];


即可解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SDWebimage 图片 内存