2015-12-16 48 views
2

我正在使用Swift的NSURL函數從一個PHP腳本中檢索HTML輸出,該腳本與一個MySQL數據庫進行交互,變量通過POST傳遞並使用SSL證書進行保護。如何輸出加載消息爲NSURL檢索URL的HTML?

一切都很好,除了偶爾長時間加載導致空白表視圖。有沒有辦法在我等待響應字符串時運行函數?我完全在這個黑暗中。

這裏是我使用的代碼:

let myUrl = NSURL(string: "http://www.casacorazon.org/ios.html") 
let request = NSMutableURLRequest(URL: myUrl!) 
request.HTTPMethod = "POST" 
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
    data, response, error in 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) { 
     let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
     if error != nil { 
      print("Error: \(error)") 
     } 
     dispatch_async(dispatch_get_main_queue()) { 
      self.testLabel.text = "\(responseString!)" 
     } 
    } 
} 
task.resume() 

回答

1

是。您可以添加一個UIActivityIndi​​catorView來顯示一個加載符號。在網絡通話發生時,您在task.resume()之後放置的任何代碼都將運行。根據您是否已經在主線程中,您可能需要一個額外的調度塊(與完成回調中的方式相同):

dispatch_async(dispatch_get_main_queue()) { 
    // make your UIActivityIndicator visible here 
}