URLSessionDownloadTask 启动时调用的委托方法是啥?

Posted

技术标签:

【中文标题】URLSessionDownloadTask 启动时调用的委托方法是啥?【英文标题】:What is the delegate method called when the URLSessionDownloadTask start?URLSessionDownloadTask 启动时调用的委托方法是什么? 【发布时间】:2015-03-24 10:58:29 【问题描述】:

NSURLSessionDownloadDelegate协议中有三种方法。

URLSession:downloadTask:didFinishDownloadingToURL:,
URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:
URLSession:downloadTask:downloadTaskdidWriteData:totalBytesWritten:totalBytesExpectedToWrite:

下载任务完成时调用didFinishDownloadingToURL。但是下载任务开始时调用的方法是什么?

【问题讨论】:

【参考方案1】:

URLSession:downloadTask:downloadTaskdidWriteData:totalBytesWritten:totalBytesExpectedToWrite: 根据接收到的数据不时调用此委托,此委托将数据写入文件位置。此外,如果出现任何问题, --URLSession:task:didCompleteWithError: 此委托为您提供有关错误的详细信息。

【讨论】:

作为解决方法,我将这些内容添加到URLSession:downloadTask:downloadTaskdidWriteData:totalBytesWritten:totalBytesExpectedToWrite:。我添加了一个标志并初始化为 NO,一旦方法调用,标志变为 YES。 为什么不在那里添加计数并增加它,您将准确了解委托被调用的次数......

以上是关于URLSessionDownloadTask 启动时调用的委托方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 中存储 URLSessionDownloadTask

从 URLSessionDownloadTask 恢复数据 始终为零

无法从 URLSessionTaskDelegate 获取数据

后台应用刷新对后台 URLSession 有影响吗?

完成后在后台下载并唤醒应用程序

如何在闭包中使用 self 来防止内存泄漏