UITableView在HTTP请求后不会重新加载数据

时间:2017-12-18 01:09:09

标签: ios objective-c

我试图在我的应用程序中实现搜索功能,在用户点击键盘搜索后,{} {}}请求将被发送到API,返回的数据将显示在我的{{ 1}}。但是,它没有工作,我认为是因为请求在一个单独的线程中运行。我尝试过一系列不同的解决方案,但似乎都没有。以下是我的代码。谢谢你的帮助!

HTTP

3 个答案:

答案 0 :(得分:0)

您的问题似乎是您在URL请求的完成块之外重新加载数据。另外,我将再次看看你在主队列上放置任务的位置。

答案 1 :(得分:0)

我认为问题是你正在围绕后台进程(NSURLSession调用)包装主队列。 NSURLSession实际上是在后台运行。因此,您需要在NSURLSession块中包含主队列GCD。例如:

if($a == true) {
  // Execute this if $a is true.
}

if($b == true) {
  // Execute this if $b is true, no matter if the first if 
  // statement was executed or not.
}

答案 2 :(得分:0)

Simply Add to your closure:

b

If you want your search Results to update in a reactive manner. create a seperate array for Search Result and update your table view to use that array by checking dispatch_async(dispatch_get_main_queue(), ^{ [self.tableView reloadData]; });