session.dataTaskWithURL从未调用completionHandler

时间:2015-01-30 18:50:28

标签: swift nsurl nsurlsession

我有以下代码:

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模拟器可以连接到互联网,确实如此。

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

1 个答案:

答案 0 :(得分:26)

任务永远不会完成,因为它永远不会开始。您必须使用其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()