容易被人忽略的 NSCache
第一次见到NSCache,是在SDWebImage中。SDWebImage的内存缓存机制就是通过NSCache完成的。所以可能你不太了解这个类,但是其实一直在使用它。 为什么要使用NSCache? 我们通常用缓存来临时存储短时间使用但创建昂贵的对象。重用这些对象可以优化性能,因为它们的值不需要重新计算。另外一方面,这些对象对于程序来说不是紧要的,在内存紧张时会被丢弃。如果对象被丢弃了,则下次使用时需要重新计算。 NSCache是一个可变的集合,主要用来存储key-value对。它有着和NSMutableDictionary类似的API。实际上,NSCache就像是一个会自动移除对象来释放内存的NSMutableDictionary。 ( i d o o o o ) i i i i o d d d d b ) ) ) ) j s s r r e e e e e c t t m m t O O o o F b b v v o j j e e r e e O A K c c b l e t t j l y : : e O : ( ( c b ( i i t j i d d F e d ) ) o c ) o o r t k b b K s e j j e y y f f : o o ( r r i K K d e e ) y y k : : e ( ( y i i d d ) ) k k e e y y c o s t : ( N S U I n t e g e r ) n u m NSCahce与可变集合不同之处: ...