2015-02-05 23 views
0

我花了3天時間來了解此問題的原因。Swift - DataTaskWithURL在獲取數據後不會自動終止

我正在成功地使用下面的代碼從服務器獲取我的數據。但即使我可以在完成處理程序中打印數據(println()),活動指示符stopAnimating()或label.text賦值也會在println後大約20秒處發生。

我認爲在我的數據到達後會話保持活躍狀態​​。如果是這樣,我該如何取消它。如果不是這樣,我錯過了什麼?

let task = NSURLSession.sharedSession().dataTaskWithURL(NSURL(url)) { data, response, error in 

      if(error == nil){ 

       //This works in 1second 
       println("string coming from data") 

       //these happen around 20 mins after the above 
       self.loading.stopAnimating() 
       self.label.text = "string coming from data" 
      } 

    } 
    task.resume() 

回答

0

NSURLSession.sharedSession().dataTaskWithURL在後臺線程上執行。總是在主線程上更新UI,如下所示:

dispatch_async(dispatch_get_main_queue()) { 
    self.loading.stopAnimating() 
    self.label.text = "string coming from data" 
} 
相關問題