I’m making an app that allows you to browse through pictures from a website. I’m currently downloading the images using:
UIImage *myImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]];
which works great, but can be time consuming. I start off by downloading 20 images, but I can’t do anything until after the 30 or so seconds it takes to download them all.
This one time wait isn’t all that bad, but if I want to download the 21st-40th images, I would have to wait another 30 seconds.
Basically, is there a way I can download these images one at a time without holding up any of my animations?
Thanks.
Sure, put the download task in a thread, and use a callback to let your program know when each image is finished. Then you can draw your images as they finish loading, and not hold up the rest of the app. This link has a template that you can use as an example.
Here’s a quick and dirty example:
Call
downloadImageOnThreadfor every image you want to load, each will get its own thread, and you’ll get calls toimageLoadedas each one completes.