iphone - NSData dataWithContentsOfURL 慢

标签 iphone ios uiimage nsdata

我的 NSData dataWithContentsOfURL 有一些性能问题...

NSURL *url = [NSURL URLWithString:Imagepath];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img=[UIImage imageWithData:data];
[ArrayImages addObject:img];

此代码放置在管理从 NSUrl 连接获取的 JSON 响应的方法中(在调用我的 Web 服务之后)。该方法中的所有代码都已经在后台线程中,将这段代码移出后台线程并不能解决问题。所有检索到的图像都放置在主线程中的 View 中。我可以做些什么来使 dataWithContentsOfURL 更快或者有 dataWithContentsOfURL 的替代方案?

提前致谢

最佳答案

+[NSData dataWithContentsOfURL:] 并不“慢”。如果加载一张图像需要很长时间,则问题出在其他地方。


评估您的问题。对于初学者:

  • 哪个资源是瓶颈?可能是网络。
  • 如何加载图像?一次全部?那会很糟糕——在它们准备好时展示它们。
  • 图像的尺寸是多少?我看到一个 SO 问题,发帖者想要加载 50 MB 图像。那太大了。同样,如果您需要的只是缩略图,那么请确保从服务器请求缩略图并加载该缩略图,而不是完整尺寸的图像。
  • 您是否正在加载甚至不需要显示的内容?等到您需要显示它们为止。
  • 您使用多少个线程来执行网络任务?对于CPU?用于输入/输出?
  • 您的源图像是否已正确“粉碎”?
  • 编写您的程序,使其与程序的演示模型一致。示例:我有无数的图像要在表格中显示,但我确保最大限度地减少资源使用,并确保应用程序很好地支持加载和请求取消。这一切都是通过网络传输的,而且速度非常快(它是受网络限制的)。

如果您要从设备存储加载许多图像,则应考虑使用 -[UIImage initWithContentsOfFile:] 来代替,因为您的图像数据不会被缓存,但可以被清除。

关于iphone - NSData dataWithContentsOfURL 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12688011/

相关文章:

IOS Enterprise Distribution 更新会保留用户数据吗?

android - Android 上的 UIImage

iphone - 将带有 exif 的原始图像从 ALAsset 对象写入文档目录文件夹

iphone - UIWebView 从 javascript 音频播放器拦截 "setting movie path:"

iphone - 无法在 UI-(iphone) 的 TextField 中输入字符串

iphone - 如何将纹理映射到曲面上?

ios - 如何本地化 iOS 设置包?

ios - CFBundleDocumentTypes -- 在 'Photos' 中列出我的应用程序

iphone - 为什么状态栏旋转而 View 保持纵向

ios - 应用程序因内存压力而终止