我有以下代码:
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()方法手动启动数据任务。
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()