I ran into a problem where the inline static NSString* keyForURL(NSURL* url, NSString* style) method was not returning a unique URL key for my images.
inline static NSString* keyForURL(NSURL* url, NSString* style)
I noticed it when 3 different images with different URLs in one app all produced the same URL key using hash therefore the wrong image was loaded from the cache.
I have added an NSString category (NSString+MD5) with a single method, - (NSString *)md5Hash; that returns a MD5 hash of a string. I have swapped the origin use for hash in EGOImageLoader.m for this new method.
- (NSString *)md5Hash;
I've done some testing and it seems to have solved my problem.
I haven't included any credit in the header of the NSString category as I found it on Stack Overflow where no credit was given.
Switched hash to md5 hash due to duplicate URL keys
Fixed %u to %@ for MD5 hash
%u for a NSString, ouch!
I had this issue too with some long image URLs that contained a lot of query string parameters. Using the md5 hash instead does fix the problem. Thanks for the fix Adam! Hope it's merged into the enormego repo so others can avoid this.
Merge branch 'master' of git://github.com/enormego/EGOImageLoading
it solved my problem thx! but I use %@ instead of %u
Would be great if this was merged. The problem with using -hash on NSString is demonstrated here: https://gist.github.com/3413755
Two strings have the same hash when the first, center, and last 32 chars are identical.