我有一个问题,我有一个UITableViewController,当视图出现时,我做了一些异步计算,这将导致更新表中的特定行. 
  
 
在viewWillAppear函数内部,我计算了需要更新的必要行,如下所示:
- (void)reloadpaths:(NSMutableDictionary *)bookingsDict
{
    NSMutableArray* indexArray = [NSMutableArray array];
    int i = 0;
    for (Nsstring *dateKey in self.eventsToShow) {
        NSMutableDictionary *venues = [bookingsDict objectForKey:dateKey];
        if (venues) {
            int j = 0;
            NSArray *events = [self.eventsToShow objectForKey:dateKey];
            for (DCTEvent *event in events) {
                Nsstring *venueIdString = [Nsstring stringWithFormat:@"%@",event.eventVenueId];
                if ([venues objectForKey:venueIdString]) {
                    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i];
                    [indexArray addobject:indexPath];
                }
                j++;
            }
        }
        i++;
    }
    [self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationFade];
} 
 但是我注意到,之后从不调用cellForRowAtIndexPath函数,并且单元格没有正确更新.知道问题可能是什么吗?
编辑:我刚刚注意到,如果我滚动出应该更新的单元格的视图,那么当我滚动回视图时它会更新.在视野中有没有办法让它更新?
解决方法
 包裹它怎么样? 
  
  
 
        [tableView beginUpdates]; [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; [tableView endUpdates];
以下是我发现的一些类似问题.
cellForRowAtIndexPath isn’t called after reloadRowsAtIndexPaths
UITableView’s reloadRowsAtIndexPaths: (NSArray *) indexPaths failing to cause a reload unless you call it twice?
希望这可以帮助.