When storeImage:imageData:forKey:toDisk: is called with toDisk:YES but no data, do not prevent memory caching (fix: #24)
Fixed a potential crash when the delegate retainCount = 1, which means the delegate is only retained by the SDWebImageManager and the delegate's dealloc method has a structure like the code below.

- (void)dealloc
{
    [manager cancelForDelegate:self];
    [super dealloc];
}
Failsafe a very common usage error (passing URL as NSString instead of NSURL)
Add an option to disable on disk caching (fix #16) + refactor other options (low prio and retry failed) to an options: parameter
Merge pull request #29 from nonamelive/patch-1

Fixed a potential crash when the delegate retainCount = 1, which means th
Perform image decoding/optimization in the IO thread instead of main thread for better responsiveness (fix #18)

This new optimization is currently disabled by default so you can test it and give us feedback.
To enable it, add #define ENABLE_SDWEBIMAGE_DECODER and to not forget to add SDWebImageDecoder class
to your projet.

Thanks to Adam Jernst (https://github.com/adamjernst) and James Tang (https://github.com/mystcolor)
for this great optimization. See https://github.com/rs/SDWebImage/pull/18 for more info.
Fix wrong options values
Add SDWebImagePrefetcher, an utility class to preventively warm-up SDWebImage cache (fix #32)

Contributed by https://github.com/mystcolor
Update README.md
Merge pull request #37 from neogithub/patch-1

Update README.md
update version check to make #if work for iOS >= 4
Merge pull request #39 from 433/version_check_fix

update version check to make #if work for iOS >= 4
Documented categories (appledoc)
Add Xcode project
Introduce a cacheURLs array to prevent race conditions related to checking the on-disk image cache. (Fix #47)

If a cache check is initiated, then canceled with cancelForDelegate: before a new cache check
is started with a different URL but the same delegate, the ongoing disk cache check would still
message the delegate despite being canceled by cancelForDelegate:. This is because it only
checked to see if the delegate was in the cacheDelegates array; it had been removed by
cancelForDelegate:, but added back by the new unrelated cache check. cacheURLs keeps track
of which specific URLs are actually requested by the delegate. If the URL from a completed
disk cache check does not match the delegate in cacheDelegates, the delegate is not messaged
(since we know that request was canceled).
Setup xcode project to allow import in a project as a static library
Added a method to see cache size.
Fixed typos
Merge pull request #70 from besi/patch-1

Fixed typos
Merge pull request #65 from ecentinela/master

Added a method to see the cache size