TableView未更新

时间:2016-08-30 13:14:39

标签: ios objective-c iphone uitableview

我已经解析了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没有更新,请您建议我如何克服这一点。谢谢。

1 个答案:

答案 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];
    }
相关问题