I am having some troubles using the +UIImage setImageWithURL: method. What I would like to do is first send an asynchronous request for a thumbnail image. This image is very small so it should load fairly quickly. I also want to send another asynchrous request to download the hi-res version of the image since it takes a little longer to load.
I assumed it would be something like:
NSURL *thumbURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.server.com/uploads/thumbs/%@.png", name]];
[imageView setImageWithURL:thumbURL placeholderImage:[UIImage imageNamed:@"PHImage.png"]];
NSURL *hiRezURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.server.com/uploads/%@.png", name]];
[imageView setImageWithURL:hiRezURL];
but that just loads the hi-res image and takes too long. Any suggestions?
If you take a look at the implementation of
UIImageView+AFNetworking.myou see that it declares a property:and the first thing that
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImagemethod does (it actually first calls-setImageWithURLRequest:placeholderImage:success:failure:), is[self cancelImageRequestOperation];and that actually cancels the operation of the class property,af_imageRequestOperation.That means, when you call the method again (on your 3rd) line, it cancels the operation of the 1st line.
A better approach would be if you use
+ imageRequestOperationWithRequest:imageProcessingBlock:success:failure:and set the image of image view in the success block. I think if you use this method, you need also to call[operation start];afterwards.Hope it helps.