0

J'ai un problème intéressant.Pourquoi une source de données UITableView est-elle chargée après la création de lignes?

Je charge un UITableView de manière asynchrone. Je suis en train de faire le compte:

prefs = [NSUserDefaults standardUserDefaults]; 

NSInteger dmCount = [prefs integerForKey:@"dmCount"]; 

NSLog(@"items count %d", [self.items count]); 

if (abs([self.items count] - dmCount) > 0) { 
    [prefs setInteger:abs([self.items count] - dmCount)forKey:@"dmCount"]; 
} 

NSLog(@"%d MESSAGES",abs([self.items count] - dmCount)); 

Cependant, [self.items count] renvoie 0 lorsque ce code est exécuté, puis retourne 4 (la valeur réelle). Je devine qu'au moment de la création de la table, ma source de données est 0, et une fois qu'elle est chargée, elle devient 4. Comment puis-je m'assurer que je reçois le nombre correct?

+0

Où dans votre code est-ce? Qu'est-ce que self.items et comment ça se passe? Ce code rend difficile de deviner ce qui se passe. –

+0

Ce code est appelé dans viewWillAppear. self.items est un NSMutableArray qui est ma source de données. –

Répondre

0

Je devrais compter la taille de l'élément dans la méthode du délégué didFinishConnection

0

Avez-vous pensé à utiliser l'observation de valeur-clé sur la propriété items?

+0

pouvez-vous expliquer dans le code? –