LRUCache 1.0.2

LRUCache 1.0.2

LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Aug 2021

Maintained by Nick Lockwood.

LRUCache 1.0.2

  • By
  • Nick Lockwood

Objective-C implementation of Least Recently Used(LRU) cache.


Create subclass of LruCache. For example: an ImageCache class to cache UIImage objects.

#import "LruCache.h"

@interface ImageCache : LruCache


Override sizeOf: method to provide customized size of stored object.

@implementation ImageCache

- (NSInteger)sizeOf:(NSString *)key value:(id)value
    UIImage *img = (UIImage *)value;
    CGSize size = img.size;
    return (NSInteger)ceil(size.height * size.width * img.scale * 4);


Instantiate ImageCache and use put: and get: method to store and retrieve objects.

ImageCache *imageCache = [[ImageCache alloc] initWithMaxSize:1024 * 1024 * 30]; // 30MB image cache.

NSString *key = @"img.png";
UIImage *img = [UIImage imageNamed:@"img.png"];
[imageCache put:key value:img];
UIImage *img = [imageCache get:key];


Install using CocoaPods:

pod 'LruCache'


LruCache is available under the MIT license. See the LICENSE file for more info.