2015-02-06 85 views
2

后更新视图我送一些POST请求我断绝与快捷,通常慢:迅速处于REST 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与此有什么关系?

回答

8

尝试做这样的主线程:

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

哈!完美,这工作!非常感谢你:) – matt 2015-02-06 15:49:04

+2

没问题!每当你在后台线程上进行计算,网络请求等,然后更新UI,总是在主线程上这样做。 – 2015-02-06 15:51:26

+0

我会做的,感谢 – matt 2015-02-06 15:52:57