如何异步下载多个图像

时间:2012-12-30 12:50:45

标签: iphone objective-c ios

  

可能重复:
  Download image asynchronously

我想异步下载多个图像。我有10个图像的阵列,我想在10 uiimageview中显示这些图像,我这样做但它只显示一个图像

- (void)loadImage {
  NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[myarray objectatindex:0]]];
  UIImage* image = [[[UIImage alloc] initWithData:imageData] autorelease];
  [imageData release];
  [self performSelectorOnMainThread:@selector(displayImage:) withObject:image waitUntilDone:NO];
}

The final method we need to create takes in the image to display and sets it on our image view.

- (void)displayImage:(UIImage *)image {
  [imageView setImage:image]; //UIImageView
}

请告诉我如何在不创建10种不同方法的情况下在不同图像上显示多个图像。

2 个答案:

答案 0 :(得分:1)

请勿使用同步的initWithContentsOfURL NSData方法。

您可能需要考虑可以找到的here的UIImageView + AFNetworking类别,它可以UIImageView异步地检索其内容。

正如评论中所建议的那样,您也可以查看SDWebImage,其基本相同。

答案 1 :(得分:0)

只需将这些类放入您的项目中,您就必须导入一些类。 对于sdwebimage,你会得到一个uiimageview的方法,就像“loadimagefrom url:withplaceholderimage”,只要检查一下我就不记得方法名。