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 NSURLSession是否显示处于挂起状态的任务?_Ios_Swift_Nsurlsession_Nsurlsessiondatatask - Fatal编程技术网

Ios NSURLSession是否显示处于挂起状态的任务?

Ios NSURLSession是否显示处于挂起状态的任务?,ios,swift,nsurlsession,nsurlsessiondatatask,Ios,Swift,Nsurlsession,Nsurlsessiondatatask,我知道在NSURLSession上调用GetTaskWithCompletionHandler: 异步调用包含所有未完成数据的完成回调, 在会话中上载和下载任务 但是,通过实验,我可以看到该方法返回的数据、上传和下载任务数组 func getTasksWithCompletionHandler(_ completionHandler: ([NSURLSessionDataTask], [NSURLSessionUploadTask], [NSURLSessionDownloadTask]) -&

我知道在NSURLSession上调用
GetTaskWithCompletionHandler

异步调用包含所有未完成数据的完成回调, 在会话中上载和下载任务

但是,通过实验,我可以看到该方法返回的数据、上传和下载任务数组

func getTasksWithCompletionHandler(_ completionHandler: ([NSURLSessionDataTask], [NSURLSessionUploadTask], [NSURLSessionDownloadTask]) -> Void)
实际上只显示正在执行的任务。即,已收到
resume()
的任务

这可以通过在操场上复制粘贴此代码看到:

import UIKit
import XCPlayground

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
let url = NSURL(string: "http://jsonplaceholder.typicode.com")
let request: NSURLRequest = NSURLRequest(URL: url!)
let task : NSURLSessionDataTask = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
    NSLog("Done")
})

session.getAllTasksWithCompletionHandler { (tasks:[NSURLSessionTask]) -> Void in
    NSLog("\(tasks)")
    XCPlaygroundPage.currentPage.finishExecution()
}

//task.resume()
请注意,
getTasksWithCompletionHandler
getAllTasksWithCompletionHandler
——后者在iOS 9中发布——似乎只是在完成闭包的签名上有所不同

另外,有点诱人的是,
NSURLSessionTask
有一个
状态
属性
NSURLSessionTaskState
,它让我们运行
挂起
取消
完成


是否有方法访问非执行任务列表;那些已经加入
NSURLSession
但尚未恢复的任务?

Apple:“每个任务都以挂起状态开始。在应用程序调用任务的resume后,它开始下载指定的资源。”创建任务对象后,您必须调用resume()方法。默认情况下,任务处于挂起状态。如何访问挂起的任务数组?在URLSession中,您将获得getallTasks方法,该方法提供所有挂起的任务数组。