2011-06-16 75 views
0

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

你有什么建议吗?我在应用程序中使用NSURLConnection:didFinishLaunch。我应该再一次在该表视图类的视图控制器中实现它吗?

任何建议/指导表示赞赏。

谢谢

+0

你应该接受答案,人们会更愿意提供帮助 – 2011-06-16 12:37:36

回答

2

你有图片的网址,你可以使用TCWebImageView按需下载和缓存(文件系统)的影像。

https://github.com/totocaster/TCWebImageView

其是由方式好和简单异步图像成分。

编辑:

另一个好的库,是值得一看的是ASIHTTPRequest的ASINetworkQueue(这是NSOperationQueue的一个很好的子类),它使得它执行重载的一个非常简单和可靠的方法(350 +项目)下载管理

编辑2:

还有就是AFNetworking图书馆内的另一个很好的解决方案,这是AFImageRequestOperation在这里你可以轻松地使用它UIImageView类别,无需子类或管理下载queu即

0

用户通过快速发布获得了很多快乐。

我会建议把图像放在你的应用程序,大小可能是合理的。

+1

正确 - 但Twitter应用如何设法保持他们的应用快速呢? – darksky 2011-06-16 12:37:44

0

你说

它非常类似于Twitter的 客户会做

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

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

+0

是的..和?我有说错吗? 无论是否缓存,这不是问题。每个细胞都有一个独特的标志。 – darksky 2011-06-16 13:51:43

+0

@Nayefc,嘿,没有错,只有你想要一个类似twitter的应用程序,但是你不认为在你滚动的时候加载图片会是一个很好的用户体验,对吧?但这就是你必须做的 - 这就是Twitter应用程序所做的。 – hooleyhoop 2011-06-16 14:05:41

+0

噢好吧 - 那么我应该重申一下我的问题,Twitter客户如何有效地做到这一点?只需正确使用NSURLConnection? – darksky 2011-06-16 14:11:47