I\'ve seen many many developers when implementing a UITableViewDelegate
and UITableViewDataSource
directly call cellForRowAtIndexPat
Personally I don't think there are ever good cases to directly call tableView:cellForRowAtIndexPath:
directly on the data source.
For case #1 it is simply bad coding. The cell should never contain the data. The data source should have the data so get the data from the actual data source, not the cell.
For case #2 you would only ever need to update a visible cell. And for this you can use the UITableView cellForRowAtIndexPath:
method. No need to call the data source for the cell.
I try never to say "never" but it should be an extremely rare case where you have a real need to get the cell by calling the data source method.