测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | Apache 2 |
发布最后发布 | 2015 年 5 月 |
由 Bryan Irace、Brian Michel、Matthew Bischoff 维护。
TMCache 是一个键/值存储,专为持久化重复制作成本高的临时对象而设计,例如下载的数据或慢速处理的成果。它由两个自相似的存储,一个在内存中(TMMemoryCache)和一个在磁盘上(TMDiskCache)组成,所有这些都由 GCD 支持,并可以从多个线程安全访问。在 iOS 上,TMMemoryCache
当应用接收到内存警告或进入后台时将自行清理。存储在 TMDiskCache
中的对象将保留,直到你手动剪切缓存或设置字节数或年龄限制。
TMCache
和 TMDiskCache
接受任何符合 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 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 获取许可证副本
除非适用法律或书面同意,否则根据许可证分发的软件按“原样”的基础分发,不提供任何形式的保证或条件,无论是明示的还是暗示的。关于许可证下的授权和限制的具体语言,请参阅许可证。