我已使用此代码发出HTTP POST请求:
let myURL = NSURL(string: serverURL)
let request = NSMutableURLRequest(URL: myURL!)
request.HTTPMethod = "POST"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print(error)
} else {
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print(responseString)
self.view.backgroundColor = UIColor.redColor()
}
}
task.resume()
我有经验,在打印responseString几秒钟后,视图的backgroundColor
发生了变化。
为什么这样,我怎么能同时做到这一点?
感谢。
答案 0 :(得分:3)
始终在主线程上执行UI
更改,因此请像这样在主线程上更改您的视图backgrondColor
。
dispatch_async(dispatch_get_main_queue(),{
self.view.backgroundColor = UIColor.redColor()
}
答案 1 :(得分:0)
您需要在主线程上执行UI更改才能使其更快,因为我认为http请求是异步进行的,例如下载图像。因此,在您的代码中,您可以执行以下操作
dispatch_async(dispatch_get_main_queue(),{
self.view.backgroundColor = UIColor.redColor()
}