Optimal data store memory usage?
===

I'm in the process of building a data store for keeping track of all the remote images being stored in my app.  I've decided to use a singleton that will keep track of all the images being referenced.

As I remember, iOS automatically begins purging objects from memory based on recency of usage, whether or not it's being referenced by the current view controller, etc.  However, if I store these images in a data store, those objects are always being referenced by the store itself.  My solution for memory management was to keep track of when images were last called and keep some form of limit on the # and size of images being stored in the data store and purge the oldest based on age.  

**Is this solution a good one?  Why or why not?  Should I be depending on Apple's automatic memory management, or is having my own manager fine?**  

*Further explanation:*

Here's how requesting an image from one of my view controllers will end up looking with my solution:

    [[HollerImages store]getImageWithUrl:@"https://www.google.com/logos/classicplus.png" 
                         completionBlock:^(BOOL succeeded, UIImage *image){
                            if( succeeded ){
                                //Update the UIImageView with the returned image
                            }
                         }];

The store will then manage how many images are currently being referenced in the app and automatically de-reference old images as we hit some pre-defined limit.  Thoughts?