JMCache是一个基于GCD持久化临时对象的键/值存储。它由一个缓存磁盘和一个内存缓存(JMCacheMemory)组成。
JMCache很酷,因为它:
typedef NS_ENUM(NSUInteger, JMCacheType) {
JMCacheTypePublic,
JMCacheTypePrivate,
JMCacheTypeOffline
};
typedef NS_OPTIONS(NSUInteger, JMCacheType) {
JMCacheTypeInMemory = 1,
JMCacheTypeOnDisk = 1 << 1,
JMCacheTypeInMemoryThenOnDisk = (JMCacheTypeInMemory | JMCacheTypeOnDisk)
};
您可以编写自己的valueTransformer以提高您编码数据的安全性。例如,请参阅JMCacheReverseDataValueTransformer类的简化实现。
@property (strong, nonatomic) JMCacheValueTransformer *valueTransformer;
// Async API
- (void)objectForKey:(NSString *)key withCompletionBlock:(JMCacheCompletionBlockObjectError)block;
- (void)setObject:(NSObject *)obj forKey:(NSString *)key withCompletionBlock:(JMCacheCompletionBlockBoolError)block;
- (void)removeObjectForKey:(NSString *)key withCompletionBlock:(JMCacheCompletionBlockBoolError)block;
- (void)clearCacheWithCompletionBlock:(JMCacheCompletionBlockBool)block;
// Sync API
- (id)objectForKey:(NSString *)key;
- (BOOL)setObject:(NSObject *)obj forKey:(NSString *)key;
- (NSInteger)numberOfCachedObjects;