UITableView cellForRowAtIndexPath called more than once for each row

The method is called when the cell appears, so whenever a cell appears, the method is called. Also, the cells are reused. So even if the method for a particular cell is called once, it maybe called for another time when this cell disappears and then appears again.


Highly probable that you are calling from other methods :

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

self.tableView from outside of - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath will call cellForRowAtIndexPath twice.