TMCache 2.1.0

TMCache 2.1.0

测试已测试
语言语言 Obj-CObjective C
许可证 Apache 2
发布最后发布2015 年 5 月

Bryan IraceBrian MichelMatthew Bischoff 维护。



TMCache 2.1.0

  • 作者
  • Justin Ouellette

适用于 iOS 和 OS X 的快速并行对象缓存。

TMCache 是一个键/值存储,专为持久化重复制作成本高的临时对象而设计,例如下载的数据或慢速处理的成果。它由两个自相似的存储,一个在内存中(TMMemoryCache)和一个在磁盘上(TMDiskCache)组成,所有这些都由 GCD 支持,并可以从多个线程安全访问。在 iOS 上,TMMemoryCache 当应用接收到内存警告或进入后台时将自行清理。存储在 TMDiskCache 中的对象将保留,直到你手动剪切缓存或设置字节数或年龄限制。

TMCacheTMDiskCache 接受任何符合 NSCoding 协议的对象。像这样放置物品

UIImage *img = [[UIImage alloc] initWithData:data scale:[[UIScreen mainScreen] scale]];
[[TMCache sharedCache] setObject:img forKey:@"image" block:nil]; // returns immediately

像这样取回它们

[[TMCache sharedCache] objectForKey:@"image"
                              block:^(TMCache *cache, NSString *key, id object) {
                                  UIImage *image = (UIImage *)object;
                                  NSLog(@"image scale: %f", image.scale);
                              }];

TMMemoryCache 允许并发读取和序列化写入,而 TMDiskCache 则序列化所有应用实例的磁盘访问,以提高性能并防止文件竞争。 TMCache 协调它们,以便添加到内存中的对象可以立即供其他线程使用,同时在后台安全地写入磁盘。这两个缓存都是 TMCache 的公共属性,所以如果需要,可以单独操作一个或另一个。

集合也工作。感谢 NSKeyedArchiver 的魔术,集合中重复的对象只占用磁盘上一个的空问。

NSArray *images = @[ image, image, image ];
[[TMCache sharedCache] setObject:images forKey:@"images"];
NSLog(@"3 for the price of 1: %d", [[[TMCache sharedCache] diskCache] byteCount]);

安装

手动

下载最新的标记并将 TMCache 文件夹拖拽到你的 Xcode 项目中。

通过双击 docs/ 下的 .docset 文件安装文档,或在网上通过 cocoadocs.org 观看。

Git 子模块

git submodule add https://github.com/tumblr/TMCache.git
git submodule update --init

要求

TMCache 需要 iOS 5.0 或 OS X 10.7 及更高版本。

贡献

有关如何帮助的信息,请参阅 CONTRIBUTING.md

联系方式

布莱恩·伊拉斯克

许可证

版权所有 2013 Tumblr, Inc.

根据Apache许可证2.0版(“许可证”)授权;除非法律强制规定或经书面同意,否则不得使用此文件,除非遵守许可证。您可以在http://www.apache.org/licenses/LICENSE-2.0 获取许可证副本

除非适用法律或书面同意,否则根据许可证分发的软件按“原样”的基础分发,不提供任何形式的保证或条件,无论是明示的还是暗示的。关于许可证下的授权和限制的具体语言,请参阅许可证