Skip to content

Commit

Permalink
add methods for manual cache interaction
Browse files Browse the repository at this point in the history
  • Loading branch information
JeremyOT committed Jun 20, 2015
1 parent 9cfd5e0 commit 6fcbcf1
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 2 additions & 0 deletions TotoClient/TCDataCache.h
Expand Up @@ -27,6 +27,8 @@ typedef void (^ImageCallback)(UIImage*);
-(NSString*)cachePathForURL:(NSURL*)url;
-(void)dataFromURL:(NSURL*)url block:(void (^)(NSData *data))block;
-(void)dataFromURL:(NSURL*)url ignoreCache:(BOOL)ignoreCache block:(void (^)(NSData *data))block;
-(UIImage*)cachedImageFromURL:(NSURL*)url;
-(void)cacheImage:(UIImage*)image forURL:(NSURL*)url;
-(void)imageFromURL:(NSURL*)url block:(void (^)(UIImage *image))block;
-(void)imageFromURL:(NSURL*)url ignoreCache:(BOOL)ignoreCache block:(void (^)(UIImage *image))block;
-(void)imageFromData:(NSData *)data forSourceURL:(NSURL *)url withCompletionHandler:(void(^)(UIImage *image)) completionHandler;
Expand Down
10 changes: 9 additions & 1 deletion TotoClient/TCDataCache.m
Expand Up @@ -109,6 +109,14 @@ -(NSData *)cachedDataForURL:(NSURL *)url cachePath:(NSString *)cachePath {
return [NSData dataWithContentsOfFile:cachePath];
}

-(UIImage*)cachedImageFromURL:(NSURL*)url {
return [_cache objectForKey:url];
}

-(void)cacheImage:(UIImage*)image forURL:(NSURL*)url {
[_cache setObject:image forKey:url cost:[self cacheCostForImage:image]];
}

-(void)imageFromURL:(NSURL *)url block:(ImageCallback)block {
[self imageFromURL:url ignoreCache:NO block:block];
}
Expand Down Expand Up @@ -147,7 +155,7 @@ -(void)runCallbacksWithImage:(UIImage*)image forUrl:(NSURL*)url {
}

-(void)imageFromURL:(NSURL *)url ignoreCache:(BOOL)ignoreCache block:(ImageCallback)block {
UIImage *memoryCachedImage = [_cache objectForKey:url];
UIImage *memoryCachedImage = [self cachedImageFromURL:url];
if (memoryCachedImage) {
block(memoryCachedImage);
return;
Expand Down

0 comments on commit 6fcbcf1

Please sign in to comment.