异步添加图像 - 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 快速滚动在单元格中显示错误的图像