使用NSURLSession下载大量图像

物质目标

我创建了一个简单的测试应用程序以学习使用方法NSURLSession此应用程序必须从网络服务下载图像并将其显示为UITableView我已经编写了应用程序的第一部分,该部分从Web服务读取图像URL列表,现在,我想显示此列表。

我的疑问是:

考虑到图像列表可能是一个很长的列表,是否可以NSURLSessionDownloadTask为每个图像创建一个我想在cellForRowAtIndexPath函数中创建会话并将NSURLSessions使用IndexPath单元格的键存储在NSDictionary中(并可能依赖于NSURLCache避免多次下载相同的图像)。

其他解决方案

我可以看到另外三个解决方案:

  1. 使用GCDdispatch_async

  2. 子类化NSOperation并实质上存储NSOperation我需要下载的任何图像的。

  3. 使用...之类的第三方库AFNetwork,但由于它是一个学习目的的应用,我更喜欢完全使用我的代码。

如果多个NSURLSession不是一个好的解决方案,我将选择其中一个选项。

您如何看待这种方法?

淡淡的

NSURLSessionTask适合大量下载。与您提到的其他一些方法相比,它的优点是可以取消或暂停下载。它还可以正确实现网络操作的并发性,这比互联网上的许多猫难以相信的困难(如果您不相信我,请查看eskimo的2010年WWDC会话和示例代码。网络连接的NSOperation并非易事)。

NSURLSessionTask和朋友是专门为您要解决的问题而设计的,并且经过了很好的测试。

对于表格视图,在中启动任务,在中tableView:willDisplayCell:forRowAtIndexPath:取消(或暂停)任务tableView:didEndDisplayingCell:forRowAtIndexPath:这样会将活动下载限制为当前可见的单元格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AFNetworking 2.0,使用NSURLSession下载图像

来自分类Dev

使用NSURLSession下载后,将图像设置为对象

来自分类Dev

Swift IOS:如何使用NSURLSession和didReciveData下载图像?

来自分类Dev

无法使用带有某些链接的 NSURLSession 下载图像

来自分类Dev

使用OkHttp将大量图像下载到SD卡

来自分类Dev

Android Jobscheduler - 如何使用 Job Scheduler 下载大量图像

来自分类Dev

位图下载导致问题的大量图像

来自分类Dev

使用NodeJS和async.queue将大量图像下载并保存到本地磁盘

来自分类Dev

如何使用NSURLSession跟踪多次下载?

来自分类Dev

在Swift中使用NSURLSession下载文件

来自分类Dev

使用NSURLSession处理顺序下载

来自分类Dev

异步图像下载可以超时还是需要 NSURLSession?

来自分类Dev

使用Python下载图像

来自分类Dev

使用AWS处理大量图像

来自分类Dev

使用jszip在Frontend中下载大量文件

来自分类Dev

无法使用NSURLSession从真实设备上的Share Extension下载

来自分类Dev

即使该应用被终止,仍继续使用NSURLSession下载

来自分类Dev

Android - 如何在后台进程中下载大量图像(大量 http url)

来自分类Dev

使用Android WebView下载图像

来自分类Dev

使用异步任务下载图像

来自分类Dev

强制使用htaccess下载图像

来自分类Dev

无法使用Promise下载图像

来自分类Dev

使用Jersey从SVG下载图像

来自分类Dev

强制使用htaccess下载图像

来自分类Dev

无法使用python下载图像

来自分类Dev

使用alamofire下载图像-iOS

来自分类Dev

使用 Curl 下载多个图像

来自分类Dev

使用Express显示图像,而不是下载图像

来自分类Dev

For循环中的NSURLSession以下载图像数据,然后添加到NSMutableArray

Related 相关文章

热门标签

归档