gpt4 book ai didi

ios - NSURLSession 完成处理程序非常慢

转载 作者:行者123 更新时间:2023-11-28 19:39:52 25 4
gpt4 key购买 nike

当我运行以下代码时,我几乎可以立即打印响应,但是,它可能需要十秒或更长时间才能出现在我的 View 中。似乎大多数类似的问题是由 session 和处理程序在不同线程上引起的。但为什么它最终会起作用?很迷茫...

func downloadDetails(completed: DownloadComplete) {
let url = NSURL(string: _detailsURL)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url) { (data, response, error) -> Void in

do {
let dict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject]

if let eyeColor = dict["eyeColor"] as? String {
self._eyeColor = eyeColor
}
}
catch {
print("json error: \(error)")
}
}
task.resume()
}

最佳答案

您需要将 UI 更新发送到主队列,如果您尝试更新它而不将其发送到主队列,则可能需要一分钟多的时间来更新它。

func downloadDetails(completed: DownloadComplete) {
let url = NSURL(string: _detailsURL)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url) { (data, response, error) -> Void in

do {
let dict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject]

if let eyeColor = dict["eyeColor"] as? String {
dispatch_async(dispatch_get_main_queue()) {
self._eyeColor = eyeColor
}
}
}
catch {
print("json error: \(error)")
}
}
task.resume()
}

关于ios - NSURLSession 完成处理程序非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35029692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com