Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

session.dataTaskWithURL completionHandler never called

I have the following code :

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...
})

The completionHandler function is never called. I tried calling the URL in my browser, it works fine. I tried with another URL, it still doesn't work. I checked that my ios simulator could connect to the Internet, it does.

I don't know why the function is not called and since I don't have any error it's hard to debug.

like image 829
Romain Braun Avatar asked Jan 30 '15 18:01

Romain Braun


1 Answers

The task never completes because it never gets started. You have to manually start the data task using its resume() method.

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()
like image 179
Mick MacCallum Avatar answered Nov 08 '22 19:11

Mick MacCallum