YYCache、YYWebImage常规使用

YYCache基础用法

开发中涉及数据持久化方面也挺多的,方法也很多,列如sqlite,归档,userdefalut单列,plist存储,苹果自带core data,亦或是基于sqlite封装的三方库(FMDB)都是可以实现需求的。到底喜欢哪一种,就凭习惯了。这里我要讲的是另外一种数据存储YYCache,使用起来也非常方便,而且可以控制存储数量,在合适的时候替换比较旧的数据。是不是有点熟悉了,对,就是采用的LRU算法,可以根据需求保存到一定数据,就是覆盖以前比较旧的数据。
YYCache底层是链表结构,刚才说的LRU就是删除链表的尾部,直到满足条件。直接上干货

 NSArray *saveLocationDataArrays = @[@{@"name":@"dd"}];
    //相当于创建一个名字为dataBase的数据库,存在的时候不创建,不存在的时候才会创建
    YYCache *myCache = [YYCache cacheWithName:@"dataBase"];
    //通过key去去保存数据,相对于一个map,保存的值不重复且是最新的
    //同步方式
    [myCache setObject:saveLocationDataArrays forKey:@"key"];
    //保存值异步方式
    CFAbsoluteTime starTime = CFAbsoluteTimeGetCurrent();
    [myCache setObject:saveLocationDataArrays forKey:@"key" withBlock:^{
        CFAbsoluteTime ednTime = CFAbsoluteTimeGetCurrent();
        NSLog(@"异步保存数据时间:%f",ednTime - starTime);
    }];
    
    //同步判断
    BOOL success =  [myCache containsObjectForKey:@"key"];
    if (!success) {
        return;
    }
    //异步判断
    [myCache containsObjectForKey:@"key" withBlock:^(NSString * _Nonnull key, BOOL contains) {
        NSLog(@"%@%d",key,contains);
    }];
    
    //同步取值
    id value = [myCache objectForKey:@"key"];
    NSLog(@"%@",value);
     //异步取值
    [myCache objectForKey:@"key" withBlock:^(NSString * _Nonnull key, id<NSCoding>  _Nonnull object) {
        NSLog(@"%@-%@",key,object);
    }];
    //删除存储map中对应key的值
    [myCache removeObjectForKey:@"key"];
    //删除全部对象
    [myCache removeAllObjects];

除此之外,效率也非常高的,可以看出保存时间仅仅0.000382s

15:13:28.715760+0800 test2[9793:443132] 异步保存数据时间:0.000382

YYWebImage基础用法

YYWebImage用法跟SDwebImage用法类似,最基本用法,它底层用 YYCache 实现了内存和磁盘缓存, 用 YYImage 实现了 WebP/APNG/GIF 动图的解码和播放,异步的图片加载,支持 HTTP 和本地文件。
支持 GIF、APNG、WebP 动画(动态缓存,低内存占用)。
支持逐行扫描、隔行扫描、渐进式图像加载。
UIImageView、UIButton、MKAnnotationView、CALayer 的 Category 方法支持。
常见图片处理:模糊、圆角、大小调整、裁切、旋转、色调等。
高性能的内存和磁盘缓存。
高性能的图片设置方式,以避免主线程阻塞。
每个类和方法都有完善的文档注释。

    //基础用法
    UIImageView *imageView = nil;
    [imageView setImageWithURL:[NSURL URLWithString:@""] placeholder:[UIImage imageNamed:@"xx.png"]];
    //其他用法
    [imageView setImageWithURL:<#(nullable NSURL *)#> options:<#(YYWebImageOptions)#>];
    [imageView setImageWithURL:<#(nullable NSURL *)#> placeholder:<#(nullable UIImage *)#> options:<#(YYWebImageOptions)#> completion:<#^(UIImage * _Nullable image, NSURL * _Nonnull url, YYWebImageFromType from, YYWebImageStage stage, NSError * _Nullable error)completion#>];
    [imageView setImageWithURL:<#(nullable NSURL *)#> placeholder:<#(nullable UIImage *)#> options:<#(YYWebImageOptions)#> manager:<#(nullable YYWebImageManager *)#> progress:<#^(NSInteger receivedSize, NSInteger expectedSize)progress#> transform:<#^UIImage * _Nullable(UIImage * _Nonnull image, NSURL * _Nonnull url)transform#> completion:<#^(UIImage * _Nullable image, NSURL * _Nonnull url, YYWebImageFromType from, YYWebImageStage stage, NSError * _Nullable error)completion#>];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,182评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 13,583评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 7,690评论 1 1
  • 在妖界我有个名头叫胡百晓,无论是何事,只要找到胡百晓即可有解决的办法。因为是只狐狸大家以讹传讹叫我“倾城百晓”,...
    猫九0110阅读 8,568评论 7 3