session.dataTaskWithURL completionHandler 从未调用过

session.dataTaskWithURL completionHandler never called

我有以下代码:

let urlPath:String = apiURL + apiVersion + url + "?api_key=" + apiKey
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
println(url!)
let task = session.dataTaskWithURL(url!, completionHandler: {(data, reponse, error) in
    println("Task completed")
    // rest of the function...
})

从未调用 completionHandler 函数。我尝试在我的浏览器中调用 URL,它工作正常。我用另一个 URL 试过了,还是不行。我检查了我的 ios 模拟器是否可以连接到 Internet,确实如此。

我不知道为什么函数没有被调用,因为我没有任何错误所以很难调试。

任务永远不会完成,因为它永远不会开始。您必须使用其 resume() 方法手动启动数据任务。

let urlPath = apiURL + apiVersion + url + "?api_key=" + apiKey
let url = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()

let task = session.dataTaskWithURL(url) { data, response, error in
    print("Task completed")
    // rest of the function...
}

task.resume()