Quand tableView: numberOfRowsInSection: est-il appelé dans UITableView?

tableView:numberOfRowsInSection est envoyé au délégué d'un UITableView pour savoir combien de lignes il doit avoir dans une section donnée.

Ma question est, quand et à quelle fréquence cette méthode est-elle appelée?

La méthode est appelée la première fois que la tableview est chargée et si vous êtes plus intéressé par les delegates, placez un point d'arrêt et vérifiez quand et où le délégué est appelé et combien de fois.

Voici les instances où cette fonction sera appelée,

  1. Pour la première fois lorsque la table est chargée
  2. le time que vous rechargez datatables de la table
  3. l'heure à laquelle vous ajoutez / mettez à jour / supprimez votre ligne ou vos sections de manière dynamic.

La méthode - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section est une méthode de protocole du protocole UITableViewDataSource . Il sera appelé la toute première fois que votre vue de table est chargée en fonction du fait que vous avez correctement défini la dataSource , par exemple

 self.yourTableView.dataSource = self; 

Si vous êtes intéressé à mettre à jour votre table à un moment ultérieur, vous pouvez appeler

 [self.yourTableView reloadData]; 

afin de recharger toute la table. Si vous ne souhaitez recharger qu'une partie de votre table, vous pouvez faire quelque chose de similaire à

 NSIndexSet *reloadSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [self numberOfSectionsInTableView:self.yourTableView])]; [self.yourTableView reloadSections:reloadSet withRowAnimation:UITableViewRowAnimationAutomatic]; 

J'espère que cela aide!

Ma question est, quand et à quelle fréquence cette méthode est-elle appelée?

Réponse courte: Lorsque votre UITableView doit mettre à jour quelque chose.

Réponse longue: Les delegates Les methods s'appellent généralement elles-mêmes, mais elles peuvent être appelées plusieurs fois lorsque votre UITableView doit mettre à jour quelque chose. Par défaut, il est appelé la première fois que la tableview est chargée ou mise à jour (rechargée).

Cela dépend de la fréquence à laquelle l'user fera défiler la vue UITable vers la section et combien de sections il y a. Cette valeur, qui est returnnée par cette fonction et est caschée. La méthode devra être révoquée si vous mettez à jour le contenu de la vue tabulaire (filtrage des résultats ou mise à jour des données via reloadData ).

La meilleure chose pour vous sera d'append la journalisation à cette fonction et de vérifier vous-même.