Прослеживая через приложение, я отмечаю, что didChangeSection сначала вызывается, который вставляет целый раздел, а затем didChangeObject вызывается повторно.
Проблема в том, что в didChangeSection вы вставляете целый раздел, а затем сразу после обновления табличного представления вы добавляете объекты в тот же раздел. Это в основном случай перекрывающихся обновлений ... (недопустимо даже в начале / конце блока обновлений).
Если вы закомментируете вставку отдельного объекта, все это работает:
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]
withRowAnimation:UITableViewRowAnimationFade];
break;
Если вы закомментируете раздел insert:, он не работает - но мне повезло меньше, когда insertRowsInSections работает все время, и вполне может быть, потому что раздела еще нет (я уверен, поэтому Вы вставляли раздел для начала). Возможно, вам придется обнаружить любой случай, чтобы сделать вставки с правильной детализацией.
В общем, мне повезло больше, когда я перезагружал и вставлял целые разделы, а не строки, табличное представление мне кажется очень трудным в отношении тех, кто работает. Вы также можете попробовать UITableViewRowAnimationNone, который, кажется, работает успешно чаще.