So is it safe to approach threads like they were timers? You start a thread,
and it calls back to it's selector method when it's complete
(detachNewThreadSelector:toTarget:withObject)?
Now - what if a thread completes and the cell is currently out of view (it
was scrolled) - do the internals take care of that, or could it cause an
error?

On Wed, May 13, 2009 at 2:32 PM, Luke the Hiesterman <luket...@apple.com>wrote:

> It would be possible to implement one thread that would handle all image
> download requests, or you could just spin a new thread for each image
> download. The latter is simpler to code, so I'd lean toward that. There's a
> limit somewhere on the number of threads in one process, but it's unlikely
> you'll run into that limit, so I wouldn't worry about it.
>
> As far as relating threads back to a cell, you simply pass in a reference
> (pointer) to the cell as an argument when you start the thread, that way the
> thread knows what cell it's acting on.
>
> Luke
>
>
> On May 13, 2009, at 11:27 AM, Eric E. Dolecki wrote:
>
>  I've just printed out the API docs on NSThread and need to start reading
>> up
>> on it.
>> I assume that's the API I'd want to use. Now, does each image fetch need
>> to
>> be it's own thread (I'm thinking yes). Is there a limit to how many can be
>> going at once? Is the iPhone multi-threaded? I have to figure out how to
>> relate each thread back to it's intended cell's UIImageView.image I guess.
>>
>> Every time I do something new and cool with this table view, I find
>> something else I need to do - so this is pretty exciting and it's a good
>> way
>> to learn core concepts as I learn all this stuff. Thanks all for the
>> feedback!!!
>>
>> Now I have to try to figure out threads and how it relates to these cell
>> images...
>>
>> E.
>>
>>
>> On Wed, May 13, 2009 at 2:19 PM, Bradley S. O'Hearne <
>> br...@bighillsoftware.com> wrote:
>>
>>  Take heart, Eric. Threads aren't all that bad -- coding is simple,
>>> hardest
>>> part is debugging (should your code executing in the new thread is doing
>>> something unadvisable), but if you keep it simple, it should be fairly
>>> straightforward.
>>>
>>> Good luck,
>>>
>>> Brad
>>>
>>>
>>> On May 13, 2009, at 10:36 AM, Eric E. Dolecki wrote:
>>>
>>> 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 <a...@webis.net> 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 <
>>>>>> mikev...@gmail.com
>>>>>>
>>>>>>  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 (Cocoa-dev@lists.apple.com)
>>>>>>>
>>>>>>> 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:
>>>>>>> http://lists.apple.com/mailman/options/cocoa-dev/edolecki%40gmail.com
>>>>>>>
>>>>>>> This email sent to edole...@gmail.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> http://ericd.net
>>>>>> Interactive design and development
>>>>>> _______________________________________________
>>>>>>
>>>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>>>>>
>>>>>> 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:
>>>>>> http://lists.apple.com/mailman/options/cocoa-dev/alex%40webis.net
>>>>>>
>>>>>> This email sent to a...@webis.net
>>>>>>
>>>>>>
>>>>>>  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 (Cocoa-dev@lists.apple.com)
>>>>
>>>> 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:
>>>>
>>>>
>>>> http://lists.apple.com/mailman/options/cocoa-dev/brado%40bighillsoftware.com
>>>>
>>>> This email sent to br...@bighillsoftware.com
>>>>
>>>>
>>>
>>>
>>
>> --
>> http://ericd.net
>> Interactive design and development
>> _______________________________________________
>>
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>
>> 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:
>> http://lists.apple.com/mailman/options/cocoa-dev/luketheh%40apple.com
>>
>> This email sent to luket...@apple.com
>>
>
>


-- 
http://ericd.net
Interactive design and development
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to