Ajout de cellules par programme à UITableView

J'ai récemment commencé la programmation pour l'iPhone et je suis en train de faire une application qui se connecte à une base de données et obtient un ensemble de noms de lignes et les affiche. Lorsqu'elle est sélectionnée, les lignes de fond de changement de couleur c'est à dire vous pouvez faire des sélections multiples et ils vont tous être de différentes couleurs. Donc, je reçois le XML depuis le serveur pas de problème et j'ai créé une UITableView pour afficher les cellules. Cependant, je n'ai aucune idée de comment faire pour ajouter les cellules dans la table. J'ai eu un coup d'oeil à insertRowsAtIndexPaths mais je ne suis pas sûr de la façon de l'utiliser? Ce que je comprends, insertRowsAtIndexPaths prend deux paramètres:

Un NSArray que contient ce que la ligne de la cellule est censé être dans et dans quelle section. Le problème, c'est que mon application dispose d'une dynamique d'un nombre de lignes. Comment pourrais-je aller sur la création de la NSArray si je ne sais pas combien de lignes je vais avoir? Puis-je utiliser NSMutableArray?

Le deuxième paramètre, il suffit d'une animation - c'est assez simple.

Un autre problème que je rencontre est où dois-je créer réellement les cellules? Comment transmettez-vous les cellules de la tableview?

J'ai essayé la lecture de la documentation, mais il ne semble pas très clair! Voici le code que j'ai en ce moment à l'intérieur de la méthode loadview de la vue-contrôleur:

 //Before this I get the XML from the server so I am ready to populate
 //cells and add them to the table view
 NSArray *cells = [NSArray arrayWithObjects:
                   [NSIndexPath indexPathForRow:0 inSection:0],
                   [NSIndexPath indexPathForRow:1 inSection:0],
                   [NSIndexPath indexPathForRow:2 inSection:0],
                   [NSIndexPath indexPathForRow:3 inSection:0],
                   [NSIndexPath indexPathForRow:4 inSection:0],
                   [NSIndexPath indexPathForRow:5 inSection:0],
                   [NSIndexPath indexPathForRow:6 inSection:0],
                   [NSIndexPath indexPathForRow:7 inSection:0],
                   [NSIndexPath indexPathForRow:8 inSection:0],
                   [NSIndexPath indexPathForRow:9 inSection:0],
                   [NSIndexPath indexPathForRow:10 inSection:0],
                   [NSIndexPath indexPathForRow:11 inSection:0],
                   [NSIndexPath indexPathForRow:12 inSection:0],
                   nil];
[eventTypesTable beginUpdates];
[eventTypesTable insertRowsAtIndexPaths:cells withRowAnimation:UITableViewRowAnimationNone];
[eventTypesTable endUpdates];

source d'informationauteur KerrM