问题标签 [nsurlsessiondownloadtask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1033 浏览

ios - 如何使用 AFURLSessionManager 取消 NSURLSessionDownloadTask?

我想在方法中使用 AFURLSessionManager 下载一些图片@selector(collectionAction)

如果任务失败,它将自动执行选择器[self performSelector:@selector(collectionAction) withObject:nil afterDelay:REQUEST_AGAIN_TIME]; 如果我什么都不做,输出是这样的

并且数字滚动和滚动,然后我的iPhone几乎停止工作。因此,如果这些任务中的任何一个失败,我想取消这些任务。但是 with [manager invalidateSessionCancelingTasks:YES];or[manager.operationQueue cancelAllOperations];我还有另一个错误

我应该如何处理?

0 投票
1 回答
1039 浏览

ios - NSURLSession 下载重新启动而不调用任何委托

我一直在我的应用程序上注意到与 NSURLSession 相关的奇怪行为。

我使用带有后台配置的 NSURLSession 来开始下载,下载开始时没有任何问题,但在某些时候,显然是随机的,它会停止几秒钟,然后重新启动而不调用任何委托,除了

具有重置的字节数。

谁能告诉我发生了什么?

这是我初始化会话的方式

- 编辑 -

我遵循 Rob 的建议并使用 Charles 和 xCode 调试器,我发现事情发生的顺序是:

  1. 创建会话
  2. 呼叫getTasksWithCompletionHandler,会话中没有任务
  3. 开始下载任务
  4. 调用委托URLSession:didReceiveChallenge:completionHandler:,我调用完成处理程序completionHandler(NSURLSessionAuthChallengePerformDefaultHandling,nil);
  5. 来自委托的日志didWriteData:显示 id 为 1 的下载任务正在下载数据,下载显示在 Charles 上,状态为 Receiving response body
  6. 在某个随机点,我可以看到 Charles 上的下载状态更改为 Complete,并开始了新的下载
  7. 调用委托URLSession:didReceiveChallenge:completionHandler:,我调用完成处理程序completionHandler(NSURLSessionAuthChallengePerformDefaultHandling,nil);
  8. 来自委托的日志didWriteData:显示 id 为 2 的下载任务正在下载数据,新的下载显示在 Charles 上,状态为 Receiving response body
0 投票
1 回答
1019 浏览

ios - NSURLSession 下载任务使用默认会话配置在调试中增加内存

我有一个应用程序可以NSURLSession在 iOS 7 及更高版本上下载文件。我开始这样的任务:

在完成处理程序 ( URLSession:downloadTask:didFinishDownloadingToURL:) 中,我将文件移动到我的应用程序数据文件夹并调用invalidateAndCancel会话。在进度处理程序 ( didWriteData:totalBytesWritten:totalBytesExpectedToWrite:) 中,我只记录进度。

当它在调试中运行时,内存使用量会迅速增加,达到已下载数据量的几倍。但是,如果我在后台任务中执行此操作,则内​​存使用量是恒定的。

将默认会话配置与下载任务一起使用是不是很糟糕?我应该设置某种缓存属性吗?这里发生了什么?

更新:据我所知,这仅在附加调试器时发生。当我在没有调试器的模拟器中启动它时,我在 Activity Monitor 中看不到任何内存使用量增加。

更新 2:这似乎已在 iOS 8.3 中修复。耶!

0 投票
2 回答
1256 浏览

ios - 使用 NSURLSession 如何在取消下载任务时获取接收到的数据或临时文件位置

我正在使用 下载多个文件,即使在取消下载任务NSURLSession时我也想保存下载的数据,并且在恢复时想要开始下载剩余数据。我的

没有被调用。

这个我的代码下载:

0 投票
1 回答
1919 浏览

objective-c - NSURLSession downloadTask 不释放内存

由于客户不能在短时间内在他的服务器上实现少量下载,并且当有这么多文件(500-1000 次下载)时,backgroundDownloadTaks 非常不一致,我决定在没有后台 NSURLSession 的情况下使用 NSURLDownloadTask。

它适用于大量文件,但存在不便。内存使用量一直在增长,直到我收到内存警告。当我得到它时,我取消挂起的任务并释放 NSURLCache 但内存没有释放,所以当您恢复下载时,您会收到相同的内存警告。

我没有使用 cancelWithResumeData 来取消任务。

这是我的代码

这是内存使用情况的两个快照

下载文件时内存使用量增加 下载文件时内存使用量增加

下载任务停止但内存未释放 下载任务停止但内存未释放

为什么我不能释放内存?

感谢您提供的任何帮助

0 投票
1 回答
514 浏览

ios - 无法在 AFNetworking 中获取下载进度

我正在尝试使用以下代码使用 AFNetworking 2.0 下载文件

// 在此处添加观察者以获取进度

这是来自observeValueForKeyPath方法的 NSLog

所以你可以看到我得到的总单位数是-1。因此,我认为fractionCompleted是 0,我无法更新 UI。我犯了什么错误?

我用这个作为参考。 如何在 AFNetworking 2.0 中获取下载进度?

在这个线程上也发生了一些类似的讨论,但我无法弄清楚原因。 https://github.com/AFNetworking/AFNetworking/issues/1398

编辑

发布响应标头

0 投票
0 回答
103 浏览

ios - iPhone iOS 7 - 后台下载 NSUrlSession

欢迎,

现在我正在实现 NSURLSession 下载过程,但我有一个问题。假设我有一个列表,用户点击下载列表中的第一个元素,然后决定返回上一个视图,之后再次重新打开下载视图,我如何跟踪后台下载的进度以及当我点击暂停/继续时,单元格没有得到更新。

-2nd 问:我如何跟踪所有当前下载的项目并显示它们?

知道如何实现这些功能吗?

0 投票
1 回答
1937 浏览

ios - ios NSURLSession(默认配置)不缓存请求

我已经配置了会话:

然后,我尝试向服务器发出请求(从 Twitter 的 API 获取图像):

图像正在加载并正确设置,但是当我关闭机器上的 Internet 连接时(没有终止应用程序,它仍然运行......)我得到了空的 UIImageViews - 所以会话尝试从服务器下载图像,但没有使用任何缓存。
是什么导致了这个问题?
我尝试使用共享会话,或者使用预定义的磁盘和内存空间配置共享缓存,但没有任何帮助。
iOS模拟器,iOS 8+

0 投票
0 回答
107 浏览

ios - 将 SSL 证书与 NSUrlSession 一起使用

我想使用我的.pem.pfx文件在应用程序和服务器之间使用 https 连接。我应该把这个文件放在哪里并使用它来成功传输数据?

0 投票
1 回答
941 浏览

ios - 如果在后台使用 NSURLSessionDownloadTask 时磁盘空间用完会怎样?

在 iOS 8.1 应用程序中,我NSURLSessionDownloadTask用来在后台下载档案,有时会变得非常大。

一切正常,但如果手机磁盘空间不足会怎样?会不会下载失败并提示是剩余磁盘空间的问题?有什么好办法提前查吗?