Attempted to dequeue multiple cells for the same index path, which is not allowed

Another possibility is that you may be accidentally using dequeueReusableCell method more than once within the same tableView.

For example you may also be using it in didSelectRowAt or didEndDisplaying cell by mistake.


Don't use self.tableView in your cellForRowAtIndexPath method (or any of the other data source and delegate methods). Use the tableView parameter.

This is really important when your data source and delegate methods are being used for more than one table view.


In my case i was calling "cellForRowAt indexPath" while the table was reloading because of another parallel process. Then i implemented flag and delayed the "cellForRowAt indexPath" while "cellForRowAt indexPath" method is working. So it wont be load in parallel for same cell