The most common cause of this is not reusing tableview cells. If you create a new cell for each logical row in the array (instead of dequeuing and reusing) the tableview may keep displaying all the cells. (*Edit:*probably won't happen.)
If not that, then it will be in one of the three methods that reloadData
calls:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
Tableviews simply display the data. If the table duplicates then you're most likely duplicating the data in code somewhere. You want to make sure that one of these does not also cause the original source of the array to be read again and appended to the MutableArray that provides the data to the table.