ios tableView reloadRowsAtIndexPaths ne fonctionne pas

J'ai un problème lorsque j'ai un UITableViewController et lorsque la vue s'affiche je fais quelques calculs de manière asynchrone qui devrait se traduire par la mise à jour des lignes spécifiques dans le tableau.

À l'intérieur de la viewWillAppear fonction que j'ai calculer le nécessaire lignes qui doivent être mis à jour comme suit:

- (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];
}

Cependant, je remarque que le cellForRowAtIndexPath fonction n'est jamais appelée après et les cellules ne sont pas mises à jour correctement. Toute idée de ce que le problème peut être?

EDIT: je viens de remarquer que si je défilement de l'affichage de la cellule qui est censé être mis à jour, puis il est mis à jour quand je revenir en arrière dans la vue. Il n'y a pas moyen de l'avoir mise à jour, tandis qu'en vue?

avez-vous vérifié si indexArray contient des données valides?
C'est ce que je vois dans le débogueur: po indexArray <__NSArrayM 0xd0c3a40>( <NSIndexPath: 0xd0dffa0> {longueur = 2, path = 15 - 0} )
En fait je viens de remarquer que si je scroll un peu, puis la cellule est mise à jour. Je suppose que cela signifie que les cellules actuellement en vue de ne pas obtenir les mises à jour jusqu'à ce que vous faites défiler loin d'eux?
non...il ne plante pas. Il n'a tout simplement pas de mise à jour jusqu'à ce que je défilement de la cellule en dehors de la vue.
Vérifier ma réponse ici pour voir si cela vous aide à: stackoverflow.com/a/41551850/4546370

OriginalL'auteur Atul Bhatia | 2014-05-19