Iphone NSURL连接和图像下载问题
我有一个JSON提要,包含大约350条记录。我使用NSURLConnection从feed启动时下载它们。提要中的每个项目都有一个指向图像的URL。我需要下载这些饲料的许多图像缩略图。这与twitter客户端的工作非常相似(因为我也在表视图中显示它们)。当我使用普通UIImage=[UIImage alloc]initWithData等时。。。这要花很长时间。此外,由于表格单元格在我滚动时加载,因此在加载图像时向下滚动会导致应用程序加载图像和糟糕的用户体验(以及延迟) 你有什么建议吗?我正在应用程序中使用NSURLConnection:didFinishLaunch。我应该在该表视图类的视图控制器中再实现一次吗 欢迎提供任何建议/指导Iphone NSURL连接和图像下载问题,iphone,objective-c,ios,cocoa-touch,nsurlconnection,Iphone,Objective C,Ios,Cocoa Touch,Nsurlconnection,我有一个JSON提要,包含大约350条记录。我使用NSURLConnection从feed启动时下载它们。提要中的每个项目都有一个指向图像的URL。我需要下载这些饲料的许多图像缩略图。这与twitter客户端的工作非常相似(因为我也在表视图中显示它们)。当我使用普通UIImage=[UIImage alloc]initWithData等时。。。这要花很长时间。此外,由于表格单元格在我滚动时加载,因此在加载图像时向下滚动会导致应用程序加载图像和糟糕的用户体验(以及延迟) 你有什么建议吗?我正在应用
谢谢,由于您有图像URL,您可以使用
TCWebImageView
下载并缓存(在文件系统中)所需的图像
顺便说一句,这是一个漂亮而简单的异步映像组件
编辑:
另一个值得一看的好库是ASINetworkQueue(它是NSOperationQueue的一个很好的子类),它使它成为执行重载(350多个项目)下载管理的一种非常简单而健壮的方法
编辑2:
库中还有另一个很好的解决方案,在这个解决方案中,您可以轻松使用它的
UIImageView
类别,而无需子类化或管理下载队列。由于您有图像URL,您可以使用TCWebImageView
下载并缓存(在文件系统中)图像点播
顺便说一句,这是一个漂亮而简单的异步映像组件
编辑:
另一个值得一看的好库是ASINetworkQueue(它是NSOperationQueue的一个很好的子类),它使它成为执行重载(350多个项目)下载管理的一种非常简单而健壮的方法
编辑2:
库中还有另一个很好的解决方案,在这个解决方案中,您可以轻松使用它的
UIImageView
类别,而无需对下载队列进行子类化或管理。用户对快速启动非常满意
我建议将这些图片放在你的应用程序中,大小可能会比较合理。用户会对快速发布感到非常高兴
我建议将图像放在你的应用程序中,大小可能是合理的。你必须使用异步图像下载才能下载图像,这不会干扰其他代码的流动,而图像会随着时间的推移而下载。您可以从中获得帮助。您必须使用异步图像下载来下载图像,这不会干扰其他代码的流动,而图像会随着时间的推移而下载。你可以向别人寻求帮助。你说 这与twitter非常相似 客户会这样做 及 另外,由于表格单元格的加载方式为I 滚动,加载时向下滚动 这些图像将导致应用程序加载 图像和可怕的用户 经验(以及滞后) 我已经安装了Twitterrific、Twitter和TweetDeck,这正是它们所做的(即当用户滚动时图像变得可见时加载图像)。很明显,如果每幅图片被多次使用(就像它可能在twitter时间线中一样),那么它只会被下载一次并被缓存 这与twitter非常相似 客户会这样做 及 另外,由于表格单元格的加载方式为I 滚动,加载时向下滚动 这些图像将导致应用程序加载 图像和可怕的用户 经验(以及滞后)
我已经安装了Twitterrific、Twitter和TweetDeck,这正是它们所做的(即当用户滚动时图像变得可见时加载图像)。显然,如果每幅图片被多次使用(可能会出现在twitter时间线中),那么它只会被下载一次并缓存。你应该接受答案,人们会更愿意帮助你接受答案,人们会更愿意帮助True-但是Twitter应用程序如何保持其应用程序的快速?True-但是Twitter应用程序如何保持其应用程序的快速?是的。。然后呢?我说错什么了吗?不管它是否缓存,这都不是问题所在。每个单元格都有一个独特的徽标。@Nayefc,嘿,没什么错,只是你想要一个类似于twitter的应用程序,但你不认为在滚动时加载图像会是一种很好的用户体验,对吗?但这就是你必须做的——这就是推特应用程序所做的。哦,好吧——那么我应该把我的问题重新表述为,推特客户端是如何如此高效地做到这一点的?是否正确使用NSURLConnection?@Nayefc,好的-拥有缩略图可能是最重要的因素。在twitter应用程序中,用户图像约为90x90px,因为JPEG可能每个图像小于2k。在它们第一次出现在屏幕上之后,延迟异步加载它们-它们出现的时间不应超过几分之一秒。如果每个图像都是2MB,这将不适用于您。NSURLConnection将为您处理异步下载。是的。。然后呢?我说错什么了吗?不管它是否缓存,这都不是问题所在。每个单元格都有一个独特的徽标。@Nayefc,嘿,没什么错,只是你想要一个类似于twitter的应用程序,但你不认为在滚动时加载图像会是一种很好的用户体验,对吗?但这就是你必须做的——这就是推特应用程序所做的。哦,好吧——那么我应该把我的问题重新表述为,推特客户端是如何如此高效地做到这一点的?是否正确使用NSURLConnection?@Nayefc,好的-拥有缩略图可能是最重要的因素。在twitter应用程序中,用户图像约为90x90px,因为JPEG可能每个图像小于2k。在它们第一次出现在屏幕上之后,延迟地异步加载它们-它们应该不超过一秒的时间来加载