问题标签 [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 投票
1 回答
262 浏览

objective-c - 已发布的应用程序现在不会在 XCode 7 模拟器中运行

我有一个应用程序已经在 App Store 上架了将近两年。它最初是为 iOS 7 发布的,它已更新并在 iOS 8 下完美运行,我刚刚下载了 XCode 7 以确保在 iOS 9 上街时我已准备好。

在模拟器中运行应用程序时出现 EXC_BAD_ACCESS 错误,但在运行 iOS 9 的测试设备上运行时却没有。

我正在使用 NSURLSessionDownloadTask 从我的服务器中提取文件:

在我调用 resume 后出现错误。同样,这仅在 XCode 7 中的模拟器上运行时。在 iOS9 设备和 XCode 6 模拟器上都像冠军一样工作。在将 NSURLSession 与 XCode 7 一起使用时,还有其他人看到过这样的事情吗?

谢谢!斯科特

0 投票
1 回答
915 浏览

ios - NSURLSessionDownloadDelegate 协议上的错误消息

我实际上正在处理下载/上传文件并跟踪进度。它运作良好。但是,我只是想知道如果出现问题怎么办,并且我没有看到此委托中的任何方法处理错误。以下是来自的方法NSURLSessionDownloadDelegate

只是想知道如何返回错误消息,谢谢。

0 投票
1 回答
575 浏览

ios - 在 iOS 9 的某些硬件上使用 NSURLSession NSURLSessionDownloadTask 时出现 EXC_BAD_ACCESS 错误

更新

适用于 iOS9 Beta 5

原始问题

在调用完成处理程序之前,执行这行代码会导致在非主线程上的某些库代码中不久发生 EXC_BAD_ACCESS 错误。

它发生在我在 iOS 9 Beta 3 和 4 上的 iPad 型号 A1403 上,但在 iOS8.1 上没有,并且在我的 iPad 型号 A1566 上在 iOS 9 和 iOS 8.4 上都能正常工作。

我已经记录了 Apple 的错误。

还有其他人有这个问题吗?有人看到解决方法吗?

测试:

  1. iOS 8.1 - 设备 A1566 -工作
  2. iOS 8.4 - 设备 A1403 -工作
  3. iOS 9 beta 4 - 模拟器 -工作
  4. iOS 9 beta 4 - 设备 A1566 -工作
  5. iOS 9 beta 3 - 设备 A1403 -不工作
  6. iOS 9 beta 4 - 设备 A1403 -不工作

Tander 测试:

  1. iOS 8.3 - 设备 -工作
  2. iOS 9 beta 0 - 模拟器 -工作
  3. iOS 9 beta 4 - 设备 -工作

所以问题实际上只发生在装有 iOS 9 的设备 A1403 上......

0 投票
3 回答
3646 浏览

ios - 当用户关闭应用程序并且任务仍处于活动状态时,NSURLSessionDownloadTask 不会删除文件

我有一个NSURLSession和一个NSURLSessionDownloadTask配置为在后台下载文件,如果用户取消了所有数据的下载任务并释放了文件使用的存储空间,但如果应用程序从多任务坞站关闭,则下载任务终止并给出错误但没有删除数据并且文件的临时数据仍在占用存储空间并且永远不会被释放。我需要做什么才能释放空间?

这是我的NSURLSession配置和错误处理:

0 投票
1 回答
69 浏览

swift - 快速更改下载文件的路径目录时面临的问题

面临问题,通过 API 下载 PDF 时。问题如下:

  1. 我可以通过我的 API 链接下载 PDF。下载完成。但它的路径是,/Users/***********/Library/Developer/CoreSimulator/Devices/58BD307-ED3A-4F34-9FCB-3391FDCC068D/data/Containers/Data/Application/DBB11FA91-2387- 4124-9E07-2E92B22636B5/文档/tfData。如何更改路径?

  2. 我需要将下载的 PDF 存储在核心数据中,并且需要从核心数据显示在我的 Web 视图中。我做不到。请指导我。

2.1 首先,我不知道如何在我的网页视图中显示下载的 PDF。

我的编码部分:

日志

请指导我。如何解决这个问题?我一个人只能做第一件事。

为什么我这样做意味着,用户也可以在离线模式下阅读 pdf。所以我需要这样。

0 投票
3 回答
2620 浏览

ios - 通过 NSURLSession / NSURLSessionDownloadTask 下载完成时发送本地通知

我正在使用NSURLSessionDownloadTask对象NSURLSession来允许用户在应用程序处于后台/设备锁定时下载文档。我还想通过本地通知通知用户个别下载已完成。

为此,我在-URLSession:downloadTask:didFinishDownloadingToURL:下载任务委托方法中触发本地通知,但是我想知道是否有更好的地方添加触发通知的代码,因为苹果解释它的方式,下载任务将被传递给系统,并由此得出,一旦(或不久之后)应用程序被后台处理,下载任务的委托将不再调用这些委托。

我的问题:添加触发本地通知的代码的最佳位置是什么?有没有人有过在他们的应用程序中添加这种功能的经验?

0 投票
4 回答
4544 浏览

ios - iOS get file size before downloading

I couldn't find a solution that worked for me. But I need to get the file size of a video I am downloading so that I can make sure the user has enough space on his phone for it.

My thoughts are to check the size of the video, then if the user has space for it, I would download it. Any recommendations?

0 投票
1 回答
1788 浏览

ios - NSURLSessionDownloadTask downloadTask: didFinishDownloadingToURL 文件不存在?

我已经实现了 NSURLSessionDownloadTask 来同时下载多个视频。在正常情况下,一切正常。后台获取也正在工作。但是当我关闭应用程序并重新启动应用程序并执行相同的 downloadTask: didFinishDownloadingToURL 时,我得到的临时文件路径是错误的。该文件在路径中不存在。当我通过查找器检查路径时,我发现文件存在,唯一的区别是提供的路径不包含文件名,并且存在与应存储文件的父文件夹同名的额外文件夹。请在下面找到共享的路径

任何人都可以帮助找到下载文件的路径或处理这种情况吗?我做了研究以找到解决方案,但很遗憾地说这在任何地方都找不到

0 投票
3 回答
8983 浏览

ios - 应用程序强制退出和应用程序重新启动后如何恢复 NSURLSession 下载过程?

我已经实现NSURLSession了从我们的服务器下载相当大的文件。现在只要我在前台或后台工作并返回应用程序,事务就可以正常工作并完成。

但是,如果我使用多任务屏幕强制退出该应用程序并再次重新打开该应用程序。下载过程尚未完成,尽管正如我从文档中了解到的那样,它应该是文档状态:

如果 iOS 应用程序被系统终止并重新启动,则该应用程序可以使用相同的标识符来创建新的配置对象和会话,并检索终止时正在进行的传输状态。此行为仅适用于系统正常终止应用程序。如果用户从多任务屏幕终止应用程序,系统将取消所有会话的后台传输。此外,系统不会自动重新启动用户强制退出的应用程序。用户必须明确地重新启动应用程序才能重新开始传输

这意味着如果我重新启动应用程序,那么在强制退出之前的事务应该重新开始,或者是吗?我需要执行其他操作才能使其正常工作吗?

更新:我偶然发现了这个项目: https ://github.com/Heikowi/HWIFileDownload#force-quit

这说明:

强制退出

应用程序被用户杀死后,下载不会在后台继续。在 iOS 7(及更高版本)上,恢复数据被传回。

这意味着即使应用程序在后台被用户杀死,也有一种方法可以接收简历数据。只有项目是用 Objective-C 编写的,我不明白他们在做什么来实现这一点。

0 投票
2 回答
1589 浏览

ios - NSURLSessionDownloadTask 在后台自动恢复所有任务

我需要按顺序下载文件。目前我可以在应用程序处于前台时做到这一点。

以下是我使用的逻辑。

  1. 创建所有下载任务。

  2. 一次恢复一个,当当前完成时从 恢复下一个URLSession:task:didCompleteWithError:

此逻辑在应用程序处于前台时有效,但一旦应用程序开始在后台运行(通过崩溃)并且我们在下载完成之前再次运行应用程序,所有任务状态已更改为恢复并且所有任务都在同时下载。

这是预期的行为还是我在后台模式下连续订购它时缺少的任何东西?

编辑: 我通过一一创建下载任务来检查。完成第一个任务后在里面创建下一个setTaskDidCompleteBlock,依此类推。它只完成第一个任务,并且在该会话在内部创建任务时崩溃setTaskDidCompleteBlock(这仅在后台模式下运行时发生,前台工作正常)。

这是我的崩溃日志屏幕截图:

drive.google.com/file/d/0B9jFCUPsPtV6YW5zbTJrQ0pQYlk/view?usp=sharing

drive.google.com/file/d/0B9jFCUPsPtV6UkEwOURpZmZYcEU/view?usp=sharing

任何帮助,将不胜感激。