swift 在 REST POST 请求后更新视图很慢

swift is slow at updating view after a REST POST request

我正在用 swift 向我的服务器发送一些 POST 请求,通常是:

let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in

        if error != nil {
            println("error=\(error)")
            return
        }

        let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)

        println(responseString) //this is fast
        label.text = "\(responseString)" // this is very slow
}
task.resume()

效果很好,我得到了所有数据。现在有两件事的行为非常不同,我不明白为什么。

行:println(responseString) 按预期立即打印数据,但是,行 label.text = "\(responseString)" 需要大约 10 秒来更新标签的文本。

知道为什么吗? DrawRect 与此有什么关系吗?

尝试在主线程上这样做:

dispatch_async(dispatch_get_main_queue(), { () -> Void in
        label.text = "\(responseString)"
    })