I have a issue with the `indexPath` of cells in a `TableView`.

For example, I populate a `TableView` with a datasource of 5 objects [cell0 cell1 cell2 cell3 cell4 cell5]. For each cell, the `indexPath`seems to be good : the cell0 has the `indexPath` 0, the cell 1 has the `indexPath` 1, etc.

Then, I click on the cell0 in order to add a cell6 after the cell0 with the method `didSelectRowAtIndexPath` so now, my datasource is something like [cell0 cell6 cell1 cell2 cell3 cell4 cell5] and the `indexPath` of each cell seems to be good again : the cell0 has the `indexPath` 0, the cell 6 has the `indexPath` 1, he cell 1 has the `indexPath` 2, etc.

So, now, I would like to remove the cell6, and insert a cell7 after the cell2 to have the following array [cell0 cell1 cell2 cell7 cell3 cell4 cell5]. This action should occur when I click on the cell2. So, to do this, the `TableView` calls 2 methods : `didSelectRowAtIndexPath` and `didDeselectRowAtIndexPath`.

So, when I click on the cell2, the method `didDeselectRowAtIndexPath`is called with the `indexPath` 0. It seems to be good because the previous selected cell was the cell0. In this method, I remove the cell6 with the method `deleteRowsAtIndexPaths`. So now my datasource looks like the following array : [cell0 cell1 cell2 cell3 cell4 cell5] but the `indexPath` seems to be good : the cell0 has the `indexPath` 0, the cell1 has the `indexPath` 1, etc.

Finally, to add the cell7, the method `didSelectRowAtIndexPath`is called with the `indexPath` 3 instead of 2. So the consequence is that the new cell is not inserted at the good place... The dataSource look like [cell0 cell1 cell2 cell3 cell7 cell4 cell5] instead of [cell0 cell1 cell2 cell7 cell3 cell4 cell5].

Is there a way to force the refreshing of the `indexPath` ? Perhaps I do not use the good methods ?

Thank you in advance for your help !