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

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

抽丝剥茧,我们看到,大部分的内存都显示在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;    }}

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

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容