我正在尝试使用NSThread加载数千张图片,但性能非常慢。
使用NSThread下载数千张图片的最佳做法是什么?
谢谢,
吉姆。
答案 0 :(得分:3)
NSThread不是问题。听起来你可能只是压倒了iPhone硬件。请记住,即使是最慢的笔记本电脑,移动平台也只有一小部分功率。
了解照片应用有时如何模糊淡入淡出图像。有时,它也必须使用缩略图。显示图形密集型网页最多可能需要10-20秒。
听起来你需要重新考虑你的设计。除非您正在加载微观小图像,否则您根本无法在iPhone硬件上及时加载“数千”。您需要在显示时加载。将图像逻辑分成组,然后让用户导航到他们想要的组,然后只加载那个小组。
答案 1 :(得分:3)
另请考虑使用NSOperationQueue
来协调这些下载。使用NSOperationQueue
和NSOperation
类,您可以安排一千次下载,但要确保只有一定数量的下载同时发生。
要获得奖励积分,请使用Reachability API查看用户是使用3G还是Wifi,并根据该值设置并发下载次数。
答案 2 :(得分:1)
如果您通过http下载图像,我建议使用ASIHTTPRequest框架。它可以轻松地下载html,图像和其他异步内容。
但是,请注意不要同时下载很多东西。我已经读过某处,同时10个http连接应该是一个很好的数量。 (某处是jonkean在ReviewUpdater.h中设置的AppSales-Mobile项目commit值