title: Adding cells programmatically to UITableView
body: <p>I've just recently started programming for the iPhone and I'm making an application that connects to a database and gets a set of row names and displays them. When selected, the rows background colour change ie you can make multiple selections and they will all be different colours. So I'm getting the XML back from the server no problem and I have created a <code>UITableView</code> to display the cells in. However, I have no idea how to add the cells into the table. I had a look at <code>insertRowsAtIndexPaths</code> but I'm not sure how to use it? As I understand, <code>insertRowsAtIndexPaths</code> takes two parameters:</p>
  
  <p>An NSArray that contains what row the cell is supposed to be in and in what section. The problem with this is that my app will have a dynamic number of rows. How would I go about creating the NSArray if I don't know how many rows I will have? Can I use NSMutableArray?</p>
  
  <p>The second parameter it takes is an animation - that's pretty straightforward.</p>
  
  <p>Another issue I am having is where do I actually create the cells? How do you pass the cells to the tableview?</p>
  
  <p>I've tried reading the documentation but it just doesn't seem very clear! Here is the code I have at the moment inside the loadview method of the view controller:</p>
  
  <pre><code> //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];
  </code></pre>