2015-12-16 23 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 
}