在AFNetworking中成功调用后,self.tableView reloadData无法正常工作

时间:2014-07-24 16:39:52

标签: ios objective-c uitableview afnetworking reloaddata

我有一个类与本教程的AFHTTPSessionManager组件类似的类http://www.raywenderlich.com/59255/afnetworking-2-0-tutorial

然而,[self.tableView reloadData]对我不起作用。

我让经理如此实施:

-(void) refresh{
     manager = [[AFHTTPSessionManager...] iniwithBaseURL:...];
     [manager Get:... parameters:... success:^(NSURLSessionDataTask *task, id responseObject){
         //test success values in responseObject
         if(test){
             //Get table data
             [self.tableView reloadData];
         }
     }
     ....
}

但是如果我之后在一个单独的函数中运行[self.tableView reloadData],它就可以了。 为什么会发生这种情况,而不是在教程中应该如何发生呢?

2 个答案:

答案 0 :(得分:40)

始终在主队列上重新加载:

dispatch_async(dispatch_get_main_queue(), ^{
    [self.tableView reloadData];
});

答案 1 :(得分:20)

[self.tableView reloadData];写入主队列。

dispatch_sync(dispatch_get_main_queue(), ^{
    [self.tableView reloadData];
});