Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何暂停NSURLSessionDownloadTask?_Ios_Swift_Afnetworking - Fatal编程技术网

Ios 如何暂停NSURLSessionDownloadTask?

Ios 如何暂停NSURLSessionDownloadTask?,ios,swift,afnetworking,Ios,Swift,Afnetworking,这就是我如何使用NSURLSessionDownloadTask的方法: let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration() let sessionManager = AFURLSessionManager(sessionConfiguration: sessionConfiguration) if let url = NSURL(string: URLSt

这就是我如何使用NSURLSessionDownloadTask的方法:

    let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
    let sessionManager = AFURLSessionManager(sessionConfiguration: sessionConfiguration)

    if let url = NSURL(string: URLString) {

        let request = NSURLRequest(URL: url)
        let sessionDownloadTask = sessionManager.downloadTaskWithRequest(request, progress: nil, destination: { (url, response) -> NSURL in

            self.createDirectoryAtPath(destinationPath)

            return destinationPath.URLByAppendingPathComponent(fileName)

            }, completionHandler: { response, url, error in

                completionBlock(error)
        })

        sessionDownloadTask.resume()
    }

我知道我可以调用
sessionDownloadTask.cancel()
sessionDownloadTask.resume()
,但我需要在那里调用
.pause()
,然后调用
.resume()
继续下载。有可能吗?

这种NSURLSessionTask方法

.suspend()
医生

任务挂起时不会产生网络流量,也不会超时。下载任务可以在以后继续传输数据。恢复后,所有其他任务都必须重新开始


不要调用
sessionDownloadTask.cancel()
,而是使用调用
sessionDownloadTask.cancelByProducingResumeData
,并且无论何时要恢复下载,请使用
NSURLSession


sessionManager.downloadTaskWithResumeData:resumeDataObject

suspend()方法对其不起作用。苹果的文档说它不会超时,但如果你做了一个小实验,结果正好相反:1)恢复任务并在2)等待等于TimeOutiterValforRequest(NSURLSessionConfiguration)的时间量后暂停任务。3)你将收到超时错误;我看到实现此功能的唯一方法是使用cancelByProducingResumeData方法下载任务。对于AvaggregateSetDownloadTask:这不是可能的主题,而是事实:(