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: "Eric E. Dolecki" <email@hidden>
- Date: Wed, 13 May 2009 13:36:41 -0400
I have zero experience with threads, and while that does sound good, I don't
know how to do that yet.
Eric
On Wed, May 13, 2009 at 1:06 PM, Alex Kac <email@hidden> wrote:
> 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
>
>
>
>
>
--
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