gpt4 book ai didi

ios - 如何检查 dataTaskWithRequest 是否完成?

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:42 24 4
gpt4 key购买 nike

我是 iOS 编程的新手,正在尝试创建我的第一个应用程序。我正在使用

从服务器获取一些数据
  var task = NSURLSession.sharedSession().dataTaskWithRequest(request,

completionHandler: { (data, response, error) -> Void in

据我了解,completionHandler 闭包中的所有代码都是在任务完成时执行的。在我的 ViewController 中,我想检查此任务是否已完成,并且在完成之前不加载表。如何检查此任务是否已完成?

我想我可以让 completionHandler 在它运行时将一些全局 bool 变量设置为 true,我可以在我的 ViewController 中检查这个变量,但我觉得有一个更好的方法来使用内置功能,我只是不知道。

最佳答案

View Controller 不需要知道 completionHandler 何时被调用。您所做的就是让 completionHandler 实际上将 tableView.reload() 分派(dispatch)回主队列(然后触发调用 UITableViewDataSource方法)。启动 UI 更新的是 completionHandler,而不是相反:

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
// check for errors and parse the `data` here

// when done
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reload() // this results in all of the `UITableViewDataSource` methods to be called
}
}
task.resume()

关于ios - 如何检查 dataTaskWithRequest 是否完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28665874/

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