NSURLSession任务未运行

时间:2015-11-13 21:57:19

标签: ios swift nsurlsession nsurlrequest nsurlsessiondatatask

我尝试使用NSURLSession从网址获取ID,但let task = NSURLSession....task.resume之间的代码永远不会被执行(我放置了一个断点)在内部检查,如附图所示。

我错过了什么?

func getPlayingSongData() {
    while loopItem < IDsForSongsToPlay.count {
        self.getPlayingSongDataLoop()
        loopItem++
    }

    self.stream()
}

func getPlayingSongDataLoop() {
    playerStatus = "Paused"

    let songIDToGet = IDsForSongsToPlay[loopItem]

    let url:NSURL = NSURL(string: "http://url.com/ajax.php?call=song&id=\(songIDToGet)")!
    print(url)

    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in

        // Convert Json data into an Array
        let songID:[String:String] = (try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)) as! [String:String]

        print(songID["id"]!)
        self.StreamIDsForSongs.append((songID["id"]!))
        songPlaying = songID["title"]!
    }
    task.resume()
}

更新:

我改变了

  

let task = NSURLSession.sharedSession()。dataTaskWithURL(url){(数据:NSData?,响应:NSURLResponse?,错误:NSError?) - &gt;无效

  

让task = NSURLSession.sharedSession()。dataTaskWithURL(url){(数据,响应,错误)

然后它对我有用。

My code with breakpoints

1 个答案:

答案 0 :(得分:0)

根据Apple的功能dataTaskWithURL(_:completionHandler:)

  

创建一个检索指定URL内容的任务,然后在完成时调用处理程序。

如果请求成功完成,则完成处理程序块的data参数包含资源数据,error参数为nil。如果请求失败,则data参数为nilerror参数包含有关失败的信息。

然后您应该看到与您的请求相关的每个参数的值。

我希望这对你有所帮助。