Re: [iPhone] Caching images fetched from a URL?
Re: [iPhone] Caching images fetched from a URL?
- Subject: Re: [iPhone] Caching images fetched from a URL?
- From: Alex Kac <email@hidden>
- Date: Wed, 13 May 2009 12:06:15 -0500
To fix the stutter, use a blank image for when the image doesn't exist
- do the NSData dataWithContentsOfURL in another thread so that when
it finishes it posts a notification which then the cell will listen to
and refresh with the data cached. Its a bit more involved and you have
to do of course deal with threads, but its so much smoother.
On May 13, 2009, at 8:23 AM, Eric E. Dolecki wrote:
Thank you everyone!!!! I have this working (locally in memory
anyway)... I
had to tweak the method a little bit...
- (UIImage*)imageNamed:(NSString*)imageNamed cache:(BOOL)cache
{
UIImage* retImage = [staticImageDictionary objectForKey:imageNamed];
if (retImage == nil)
{
// Since my images are not local, fetch externally
//retImage = [UIImage imageWithContentsOfFile:[[NSBundle
mainBundle]
pathForResource:imageNamed ofType:nil]];
retImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL
URLWithString:imageNamed]]];
if (cache)
{
if (staticImageDictionary == nil)
staticImageDictionary = [NSMutableDictionary new];
[staticImageDictionary setObject:retImage forKey:imageNamed];
}
}
return retImage;
}
And how I am calling it:
UIImage *ret = [self imageNamed:tmp cache:YES];
holder.image = ret;
Seems like it's working pretty well. Although there will always be
some
initial stutter on long lists in the table, at least once you've
used it a
little things smooth out. If I need to, I'll just use the file
system or a
db. Thanks for all of the help here, I really appreciate it!
Eric
On Wed, May 13, 2009 at 12:58 AM, Michael Vannorsdel <email@hidden
>wrote:
The UIImage is the object (inherits from NSObject), so yes you'd
pass the
pointer to it as the dict's object. And objectForKey: will pass
back that
pointer to the UIImage again.
On May 12, 2009, at 10:00 PM, Eric E. Dolecki wrote:
I like the cache without writing to the disk (for now anyway).
When you say the image object itself, I don't know exactly what you
mean...
if it's just a pointer to UIImage then I think I do know. So I
could pair
the pointer with the URL key, is that right?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
http://ericd.net
Interactive design and development
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
Alex Kac - President and Founder
Web Information Solutions, Inc.
"Patience is the companion of wisdom."
--Anonymous
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden