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

时间:2015-02-06 15:42:05

标签: rest swift drawrect

我通过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与此有什么关系吗?

1 个答案:

答案 0 :(得分:8)

尝试在主线程上执行此操作:

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