HTTP POST 请求 UIView 更改延迟后

After HTTP POST request UIView change delays

我已使用此代码发出 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()

我的经验是视图的 backgroundColor 在 responseString 打印几秒后发生变化。

为什么会这样,我怎样才能同时做到?

谢谢。

始终在主线程上执行 UI 更改,因此请像这样在主线程上更改视图的 backgrondColor

dispatch_async(dispatch_get_main_queue(),{
    self.view.backgroundColor = UIColor.redColor()
}

您需要对主线程执行 UI 更改以使其更快,因为我认为 http 请求是异步发出的,例如下载图像。所以在你的代码中你可以做如下

dispatch_async(dispatch_get_main_queue(),{
    self.view.backgroundColor = UIColor.redColor()
}