我已经解析了API
响应UITableView
的数据。但是在这里我得到了viewDidAppear方法的响应,然后在完成响应之后我想将数据更新到TableView但它没有更新。我&# 39; m遵循这些方法
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Response here ..Service call //
NSLog(@"viewDidAppear running");
[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:TRUE];
}
我还尝试[self.tableView reloadData]
,但TableView
没有更新,请您建议我如何克服这一点。谢谢。
答案 0 :(得分:3)
您无法从后台线程调用UITableView#reloadData
。所以你实际上需要在主线程上安排那个:在webservice调用后调用以下方法,当你得到响应后再添加这个
if (yourArray.count>0)
{
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}
不需要这个
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Response here ..Service call //
NSLog(@"viewDidAppear running");
[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:TRUE];
}