0

我正在开发一个 iOS 应用程序,如果应用程序没有互联网连接,它需要下载图像以在下次显示它。

我获得了从请求中将此图像下载到服务器的 URL,我得到了一个带有“图像”字段的 json,其中包含图像的 url。要下载和存储此图像,我执行以下操作:

NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:utfString]];
[data writeToFile:[NSString stringWithFormat:@"%@/%@",documentsDirectoryPath,@"superPremio"] atomically:NO];

这在成功的服务器调用块内调用。所以我不是同步进行的。此服务器调用是在viewDidLoad需要显示图像的视图控制器中进行的。这个视图控制器有一个 UIScrollView 并且当图像被写入内存时这个滚动视图正在试验一个滞后。一切都是在后台处理中完成的,所以我不确定为什么会这样……知道吗?

谢谢!

4

1 回答 1

2

数据获取过程

NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:utfString]];

不是异步的,它会导致 UI 滞后

使用此答案使其异步

于 2013-04-02T19:00:20.047 回答