异步添加图像 - ASIHTTPRequest

Posted

技术标签:

【中文标题】异步添加图像 - ASIHTTPRequest【英文标题】:Adding images Asynchronously - ASIHTTPRequest 【发布时间】:2012-01-28 15:49:50 【问题描述】:

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

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

2.) 我需要将图像添加到 UIViewController Asynchronously。 (不是到单元格,而是在UIImageView 上,在UIViewController 上)。

有人可以帮我提供一些示例代码、示例或教程吗?

【问题讨论】:

How? UITableViewCell with UIImageView asynchronously loaded via ASINetworkQueue的可能重复 【参考方案1】:

无需引入对整个框架的依赖,例如 ASIHTTPRequest 只需下载一张图片,使用 GCD 只需几行简单的代码即可:

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

【讨论】:

你好,在一个项目中使用多个库可以吗?就像在 async-uitableview 和 ASIHTTPRequest 中一样?当您只能在 ASIHTTPRequest 中使用另一个库时,使用另一个库有什么特别之处? (我是初学者)而且简短的描述链接以 404 结尾,您能否重新链接它 是的,您可以在同一个项目中使用多个库。 async-uitableview 是在 ASIHTTPRequest. async-uitableview 之上的抽象,专门解决 tableview 中图像的异步下载问题。 @Srikar dispatch_async - 我今天第一次看到它并使用它。感谢您提供此信息。看起来很好用。【参考方案2】:

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

创建请求。 将自己设置为完成时的代表。 启动请求。

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

【讨论】:

我已经在使用requestFinished 来获取要在tableview 中显示的其他数据。我将收到的这些数据将包含我希望下载的图像的链接。那么如何再次使用requestFinished 来下载图片呢? 当 requestFinished 被调用时,文件已经被下载,你只需使用 NSData *responseData = [request responseData];以获取实际下载的内容。【参考方案3】:

我不确定它是否正是您要查找的内容,但请查看来自 Apple 的 lazy image loading example。但他们使用 NSURLConnection。

希望对你有帮助

【讨论】:

以上是关于异步添加图像 - ASIHTTPRequest的主要内容,如果未能解决你的问题,请参考以下文章

当异步添加新项目时,UICollectionView 快速滚动在单元格中显示错误的图像

Angular 4图像异步与承载标头

无法确定将 Await 合并到异步函数中的位置

Android:将数据添加到 ArrayAdapter 时可见的 ListView 图像闪烁

如何在警报视图中的文本之间添加图像?

颤振错误:<异步挂起>