ios - 为什么更新我的 UIView 有延迟

标签 ios swift

当我使用 NSURLSession 检索数据并想在数据从服务器可用后更新我的 View 时,更新 View 有大约 15 秒的延迟。

var url = NSURL.URLWithString("http://example.com/app/api.php")
var session = NSURLSession.sharedSession()
var dataTask = session.dataTaskWithURL(url, completionHandler: {(data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
  println(NSString(data: data, encoding: NSUTF8StringEncoding))
  self.myLabel.text = "completion"
  self.view.setNeedsDisplay()
  return})
dataTask.resume()

补充:调用setNeedsDisplay没关系。

对我的代码有什么问题或如何避免这种延迟有什么建议吗?

最佳答案

感谢 rdelmar,他把我引向了正确的方向,这里是我更正的代码:

var url = NSURL.URLWithString("http://www.connected-media.de/app/api.php")

var sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()

var URLSession = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: NSOperationQueue.mainQueue())

var dataTask = URLSession.dataTaskWithURL(url, completionHandler: {(data: NSData!, response:      NSURLResponse!, error: NSError!) -> Void in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
self.myLabel.text = "completion"
return})        

dataTask.resume()

关于ios - 为什么更新我的 UIView 有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952509/

相关文章:

ios - 从 iPhone 仅获取新的/修改的电话联系人

arrays - 使 Swift 数组语句更简洁

ios - 这种模式适合核心数据吗?

ios - 打开 UIPickerView 非常慢

ios - 按月份对 NSDictionary 的值进行分组和求和,其中键为 NSDate

ios - 如何从pid获取当前进程和其他进程堆的起始地址?

ios - 每次更改 ViewController 时执行该函数

iOS 组合 : get a strongly typed error from URLSession's dataTaskPublisher

ios - 在模拟器中运行 Apple Watch glance 应用程序时出现问题

ios - 在展开可选值时意外发现 nil,当尝试更改标签的文本时,由通知触发