我正像往常一样快速地向我的服务器发送一些 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)"
})
关于rest - 在 REST POST 请求后,swift 更新 View 的速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28369390/