 <p>This has nothing to do with Core Data.</p> <p>You must ensure the number of rows in the table and the number of rows in the data source is always the same.</p> <p>If you need to delete a row, you need to delete the row from the data source, delete it from the table, BUT -> you need to do it between those two lines of code:</p> <pre><code>[_tableView beginUpdates]; // here delete from data source, and from the table. [_tableView endUpdates]; </code></pre>