gpt4 book ai didi

ios - 在 Swift 中的 AsynchronusRequest 之后无法执行任何操作

转载 作者:行者123 更新时间:2023-11-28 10:18:54 27 4
gpt4 key购买 nike

我是第一次使用 Swift。我正在触发 Web API,如下所示,我正在成功获取数据,但我无法在 NSURLConnection.sendAsynchronousRequest black 中执行任何操作。在我写了 segue perform 方法之后我正在打印结果,但它没有推送到另一个 ViewController 并且它留在同一个 View Controller 中。提前致谢。

    NSURLConnection.sendAsynchronousRequest(request1, queue: queue, completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
//SwiftLoader.hide()
do {
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
SwiftLoader.hide()
print("ASynchronous\(jsonResult)")
self.performSegueWithIdentifier("Home", sender: self)
}
self.hideView()
}
catch let error as NSError
{
print(error.localizedDescription)
}
})

最佳答案

如果你想执行 segue,它应该在主线程上执行,而不是在后台线程中执行。 NSURLConnection.sendAsynchronousRequest 在后台线程运行,所以如果你想要任何 UI 相关的修改,你应该使用主线程。所以像这样使用:-

   NSURLConnection.sendAsynchronousRequest(request1, queue: queue, completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
//SwiftLoader.hide()
do {
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
SwiftLoader.hide()
print("ASynchronous\(jsonResult)")
dispatch_sync(dispatch_get_main_queue(), {
self.performSegueWithIdentifier("Home", sender: self)
})

}
self.hideView()
}
catch let error as NSError
{
print(error.localizedDescription)
}
})

关于ios - 在 Swift 中的 AsynchronusRequest 之后无法执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342065/

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