MUImageCache - 轻量简单的图片缓存方案

MUImageCache发现了目前无法解决的bug,已无缝切换到SDWebImage,只需更新最新版就可以,无需额外操作。
MUImageCache的思路主要来自于[FlyImage],经过试用发现了一些问题。

FlyImage的主要问题:
1.崩溃、各种各样的崩溃
2.图片无法正常显示
3.图片数据会被后来的图片数据覆盖  
4.不支持单独下载管理
5.不支持GIF
·········

优势

1.内存消耗低
2.修复FlyImage已发现的bug
3.支持FlyImage具有的优势
4.新增图片下载管理
5.支持GIF
6.支持圆角绘制,并避免调用(  layer.cornerRadius;
layer.masksToBounds)

区别

[SDWebImage]图片缓存框架,采用的是数据流下载方式(下载过程中接收到数据就回调),如果同时需要下载多张图片,内存几乎会几何系数的增加。
[MUKit/MUImageCache] 图片缓存框架,采用的是文件下载方式(文件下载完成后才会进行回调),用【mmap】(虚拟内存映射)缓存图片,对内存的影响降至较低,非常适合对内存敏感的应用。

[SDWebImage]会随着图片的增多内存几乎是几何系数的增多,而MUImageCache变化则很小,每增加一张图片内存增加大约是0.02m。

SDWebImage内存变化.gif

MUImageCache内存变化.gif

使用方式


//小图标
- (void)setIconURL:(NSString*)iconURL;

- (void)setIconURL:(NSString*)iconURL placeHolderImageName:(NSString*)imageName;
//绘制圆角
- (void)setIconURL:(NSString*)iconURL placeHolderImageName:(NSString*)imageName cornerRadius:(CGFloat)cornerRadius;

//图片
- (void)setImageURL:(NSString*)url;

- (void)setImageURL:(NSString*)imageURL placeHolderImageName:(NSString*)imageName;
//绘制圆角
- (void)setImageURL:(NSString*)imageURL placeHolderImageName:(NSString*)imageName cornerRadius:(CGFloat)cornerRadius;
imageCache.gif

其它框架

MUSignal - 最简洁易用的事件处理框架
MUTableViewManager - MVVM TableView 只需一个block就可显示列表
MUNavigation 轻量 简单 易用 的导航框架

你可能感兴趣的:(MUImageCache - 轻量简单的图片缓存方案)