删除 AVAssetDownloadTask 所有未下载的文件

Delete AVAssetDownloadTask all not downloaded files

我需要删除应用 运行 时 AVAssetDownloadTask 未能下载的所有文件。我想在应用收到 UIApplication.willTerminateNotification.

后执行此操作

我尝试取消所有 AVAssetDownloadTasks,但 AVAssetDownloadDelegate urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL) 目前未被调用。我想获取所有文件的位置 url。

如果有其他方法可以做到这一点?

如果您在 AVAssetDownloadTask 上调用 -cancel-didFinishDownloadingTo location: 会立即触发。

将下载到位置

您可以使用此代表跟踪最终位置:

optional func urlSession(_ session: URLSession, 
        aggregateAssetDownloadTask: AVAggregateAssetDownloadTask, 
           willDownloadTo location: URL)

下载完成后告诉委托人资产的最终位置。

此委托回调只能用于保存位置 URL 在您的应用程序中的某处。

任何额外的工作都应该在以下时间完成:

optional func urlSession(_ session: URLSession, 
                              task: URLSessionTask, 
        didCompleteWithError error: Error?)

这里是官方文档页: