Skip to content

Conversation

AdamSwinden
Copy link

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.

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.

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.

@btjones
Copy link

btjones commented Sep 20, 2011

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.

@hSATAC
Copy link

hSATAC commented Jul 26, 2012

it solved my problem thx! but I use %@ instead of %u

@hwaxxer
Copy link

hwaxxer commented Jan 28, 2013

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants