YYCache 源码分析(一)

iOS 开发中总会用到各种缓存,YYCache或许是你最好的选择。性能上有优势,用法也很简单。作者ibireme曾经对比过同类轮子:http://blog.ibireme.com/2015/10/26/yycache/

1.简单架构图

295346-c7ea0fff151e74cd

2.YYCache.h方法分析

3.YYCache使用

打印:

打印:

4.YYCache.h tips

__has_include:用来检查Frameworks是否引入某个类,
YYWebImage已经集成YYCache,如果导入过YYWebImage则无需重新导入YYCache

接口中 nullable 的是少数,一般都为nonnull,为了防止写一大堆 nonnull,Foundation供了一对宏NS_ASSUME_NONNULL_BEGINNS_ASSUME_NONNULL_END,包在里面的对象默认加 nonnull 修饰符,如果是nullable的,只需要把 nullable 的指出来就行

command+鼠标左键UNAVAILABLE_ATTRIBUTE
发现宏定义#define UNAVAILABLE_ATTRIBUTE __attribute__((unavailable)),
__attribute__Clang提供的一种源码注解,方便开发者向编译器表达某种要求,括号里是传达某种命令.
为方便使用,一些常用属性也被Cocoa定义成宏,
比如UNAVAILABLE_ATTRIBUTENS_CLASS_AVAILABLE_IOS(9_0).
unavailable告诉编译器该方法失效.
在封装单例或初始化某个类前必须做一些事时,对一些方法禁用是非常不错的选择.
还可以给个message提示:

295346-4973dbff6e9b1431

295346-ee69ae026a101c89

本文只是简单剖析,接下来会分析YYMemoryCache实现原理.

References

http://blog.sunnyxx.com/2016/05/14/clang-attributes/
http://blog.sunnyxx.com/2015/06/12/objc-new-features-in-2015/

文章同步到微信公众号:hans_iOS 有疑问可以在公众号里直接发

1 4 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部