24(二)关于使用SDWebImage内存暴涨的问题

24(二)关于使用SDWebImage内存暴涨的问题_第1张图片

当我把控制器移除之后,内存竟然也没有丝毫的下降,这在APP上可完全不行。一开始我并没有想到是SD的问题,以为是我代码有什么问题,造成了循环引用,内存没有释放,于是乎,打开Leaks

24(二)关于使用SDWebImage内存暴涨的问题_第2张图片

抽丝剥茧,我们看到,大部分的内存都显示在SDWebImage的

- (UIImage*)diskImageForKey:(NSString*)key {NSData*data = [selfdiskImageDataBySearchingAllPathsForKey:key];if(data) {UIImage*image = [UIImagesd_imageWithData:data];        image = [selfscaledImageForKey:key image:image];if(self.shouldDecompressImages) {            image = [UIImagedecodedImageWithImage:image];        }returnimage;    }else{returnnil;    }}

24(二)关于使用SDWebImage内存暴涨的问题_第3张图片

清除cache,只要在合适的时机去调用它就行

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


网上说把它放在applicationDidReceiveMemoryWarning里调用,但是我没有,因为在一些老机型里,比如iPhone4,内存爆炸的时候瞬间就crash了,来不及去调这个,所以我建议在做一些大图片多图片处理的时候,最好随时的去清理一下。

你可能感兴趣的:(24(二)关于使用SDWebImage内存暴涨的问题)