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

来源:互联网 发布:单页介绍源码 编辑:程序博客网 时间:2024/06/05 15:38

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"];

即可解决。


1 0
原创粉丝点击