异步添加图像 - ASIHTTPRequest

时间:2012-01-28 15:49:50

标签: iphone objective-c ios asihttprequest

我正在使用ASIHTTPRequest。使用ASIHTTPRequest时,我遇到以下问题。

1。)我需要将图像添加到UITableView(对于每个单元格)asynchronously。我怎么能这样做?

2。)我需要将图片添加到UIViewController Asynchronously。 (不是针对单元格,而是位于UIImageView上的UIViewController上。

有人可以帮我一些示例代码,示例或教程开始吗?

3 个答案:

答案 0 :(得分:6)

当你可以使用GCD做一些简单的代码时,不需要为ASIHTTPRequest这样的整个框架引入依赖只是为了下载一个图像:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSData *imageDate = [NSData dataWithContentsOfURL:imageURL];
    UIImage *image = [UIImage imageWithData:imageData];
    dispatch_async(dispatch_get_main_queue(), ^{
        avatar.image = image;
    });
});

这是异步的,所有的善良。但是在几行代码中,您可以编写,理解,修复错误,扩展和维护自己。

但是如果你一直在使用ASIHTTPRequest,我建议使用这个优秀的项目Here是一个示例代码,有一个指南和a brief description.

另一种方法是您可以使用异步图像视图而不是默认图像视图。检查教程Here以及How? UITableViewCell with UIImageView asynchronously loaded via ASINetworkQueue

答案 1 :(得分:0)

基本上(see example page with all the correct syntax)你做的是

  • 创建请求。
  • 将自己设置为完成时的委托。
  • 启动请求。

In - (void)requestFinished:您将图像添加到TableView中,就像在普通代码中一样。

答案 2 :(得分:0)

我不确定这正是您要找的,但请查看Apple的lazy image loading example。但他们使用NSURLConnection。

希望有所帮助