SDWebImage页面图片过多导致崩溃

原因是SDWebImage下载图片的时候decode这一操作会占用大量内存

旧版中用

[SDImageCache sharedImageCache].config.shouldDecompressImages = NO;

新版shouldDecompressImages没有了。那怎么关闭decode呢?看源码发现到处用这句代码判断。

BOOL shouldDecode = !SD_OPTIONS_CONTAINS(options,SDWebImageAvoidDecodeImage);

if (shouldDecode) {

        image = [SDImageCoderHelper decodedImageWithImage:image];

}

答案就有了,设置图片的使用设置options就能关闭压缩

[image sd_setImageWithURL:url placeholderImage:PLACEHOLDERIMAGE options:SDWebImageAvoidDecodeImage];

问题虽然解决了。

题外话,看内存监控发现popViewController的时候图片内存并不会释放,缓存图片会一直累积,直到内存报警才会释放。于是给SDImageCache设置内存大小后,popViewController就会释放内存了。

 [SDImageCache sharedImageCache].config.maxMemoryCost = 30 * 1024 * 1024;//限制图片缓存30M

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

推荐阅读更多精彩内容