NSURLConnection和图像下载问题

时间:2011-06-16 12:27:58

标签: iphone objective-c ios cocoa-touch nsurlconnection

我有一个约有350条记录的JSON Feed。我使用NSURLConnection在从Feed中启动时下载它们。 Feed中的每个项目都有一个图像的URL。我需要下载许多这些Feed的图片缩略图。它与twitter客户端的功能非常相似(因为我也在表格视图中显示它们)。当我使用普通的UIImage = [UIImage alloc] initWithData等...它将需要永远。此外,由于表格单元格在滚动时加载,因此在加载图像时向下滚动会导致应用程序加载图像和糟糕的用户体验(以及延迟)。

您建议有哪些替代方案?我在应用程序中使用NSURLConnection:didFinishLaunch。我应该在该表视图类的视图控制器中再次实现它吗?

感谢任何建议/指导。

谢谢,

4 个答案:

答案 0 :(得分:2)

如果您有图片网址,则可以使用TCWebImageView按需下载和缓存(在文件系统中)图片。

https://github.com/totocaster/TCWebImageView

顺便说一下,这是一个漂亮而简单的异步图像组件。

编辑:

值得一看的另一个好的库是ASIHTTPRequest的ASINetworkQueue(它是NSOperationQueue的一个很好的子类),它使它成为一个非常容易和强大的方法来执行重载(350多个项目)下载管理

编辑2:

AFNetworking库中有另一个很好的解决方案,即AFImageRequestOperation,您可以轻松使用其UIImageView类别,而无需子类化或管理下载队列。

答案 1 :(得分:1)

您必须使用异步图像下载才能下载图像并且不会干扰其他代码的流动,而图像会随着时间的推移而下载。您可以从http://code.google.com/p/iphone-lib/wiki/AsyncImageView获取帮助。

答案 2 :(得分:0)

快速发布,用户会更开心。

我建议将图片放在你的app中,尺寸可能合理。

答案 3 :(得分:0)

你说

  

它非常类似于推特   客户会做

  

此外,由于表格单元格加载为I   滚动,加载时向下滚动   图像将导致应用程序加载   图像和可怕的用户   经验(以及滞后)。

我有Twitterrific,Twitter和TweetDeck安装,这正是他们所做的(即加载图像,因为当用户滚动时它们变得可见)。显然,每个图像,如果多次使用(因为它可能在Twitter时间轴中),只会下载一次并缓存。