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/archive%40mail-archive.com This email sent to arch...@mail-archive.com