TMCache + Mantle 详解
来源:互联网 发布:聚宝盆计划软件 编辑:程序博客网 时间:2024/05/19 14:56
TMCache + Mantle
TMCache 是 Tumblr 开源的一个基于 key/value 的数据缓存类库,可以用于缓存一些临时数据或者需要频繁加载的数据,比如某些下载的数据或者一些临时处理结果。TMCache 支持内存缓存(Memory Cache)和硬盘缓存(Disk Cache),并且基于GCD,支持多线程获取缓存数据。 如果是使用内存缓存(TMMemoryCache),当App收到内存使用警告或者App被移到后台时(也就是打开了其他App),TMCache 会自动清理内存里面的缓存数据。当使用硬盘缓存(TMDiskCache)时, 需要开发者手动去清理缓存或者事先设置缓存区容量或者缓存期限。
编译测试,测试环境:Xcode 5.0, iOS 6.0 以上。
使用方法:
TMCache 和 TMDiskCache 可以缓存一切遵循 NSCoding 的对象。
缓存一张图片:
UIImage *img = [[UIImage alloc] initWithData:data scale:[[UIScreen mainScreen] scale]];
[[TMCache sharedCache] setObject:img forKey:@"image" block:nil];
获取缓存的图片:
[[TMCache sharedCache] objectForKey:@"image"
block:^(TMCache *cache, NSString *key, id object) {
UIImage *image = (UIImage *)object;
NSLog(@"image scale: %f", image.scale);
}];
最近才发现 Tumblr 开源了 TMCache,这是它们用在 iOS 客户端的缓存程序,可以很方便地保存和读取缓存,线程安全,基本完全符合我对简单缓存的需求。只要是实现了 NSCoding
协议的对象,都能保存到磁盘中。
而 Github 开源的 Mantle,则提供了一系列便捷的方法映射数据到对象:
- 使用
MTLManagedObjectAdapter
,NSManagedObject
和MLTModel
可以互相转换。 - 使用
MTLJSONAdapter
,JSON 对象和MLTModel
可以互相转换。 - 基类
MLTModel
实现了NSCoding
协议, 可以直接用NSKeyedArchiver
保存到磁盘,或用NSKeyedUnarchiver
重新读取文件到内存中。
这样一来,读取服务器接口数据的流程可以是这样:
- 访问接口,获得 JSON 数据。
- 使用
MTLJSONAdapter
转换 JSON 数据为MLTModel
子类的对象。 - 使用
TMCache
保存该对象到缓存中。 - 回调请求数据的对象。
- 下次再请求数据时,请求
TMCache
获得缓存。
同时使用这两个项目的话,可以大大地简化保存缓存的工作(老是要想保存在哪里是一件很头疼的事)。但是对于需要读取大量数据的应用,还是需要配合 Core Data 一起用,否则性能会是个问题。
- TMCache + Mantle 详解
- TMCache + Mantle
- Mantle 详解
- Mantle 详解
- iOS Mantle 详解
- iOS Mantle详解2
- Mantle
- Mantle
- Mantle
- Mantle
- Mantle
- Mantle
- 缓存工具TMCache调研
- mantle学习
- Mantle Introduce
- Mantle 教程
- JSONModel, Mantle
- Mantle简介
- RFID技术知识点搜集
- 4.1 以面向集合的思维方式来思考
- 二维码技术知识点搜集
- CLASSPATH PATH JAVA_HOME的区别
- js 将字符串转换为日期类型
- TMCache + Mantle 详解
- 4.1.1 从面向过程转变为基于集合的思维方式
- PL/SQL编程学习之使用游标
- js数组复制
- UVA1347 - Tour
- ObjectAnimator常用设置view效果
- 【python】'utf8' codec can't decode byte 0xb6
- error LNK2001: unresolved external symbol _CrtDbgReportW
- android APK加固篇-3.使用JNI加载dex和调用方法