Я не уверен, что это ответит на ваш вопрос, но я нашел решение аналогичной проблемы, с которой столкнулся. Я сортировал объекты в своем UITableView, поддерживаемом основными данными, по первой букве имени каждого объекта. В любом учебном пособии, которое я читал, мне было предложено поместить временное свойство NameInitial в подкласс NSManagedObject, которое я бы заполнил первой буквой имени этого объекта. Затем я использовал это свойство в качестве моего sectionNameKeyPath, чтобы отсортировать объекты по соответствующим разделам в моем UITableView.
У меня была кнопка в каждой ячейке, которая обновляла свойство объекта, связанного с этой ячейкой, и я правильно получил сообщения NSFetchedResultsChangeUpdate в моей делегатской функции didChangeObject. ОДНАКО, иногда, ячейки удаляются, и я получаю сообщение NSFetchedResultsChangeDelete без видимой причины.
Затем я заметил, что удаляемые ячейки имеют (нулевое) свойство NameInitial для своего связанного объекта. Я забыл, что временный NameInitial хранится только в памяти, и поэтому не всегда поддерживается постоянно. Как только я вручную заполнял свойство NameInitial при каждом обновлении ячейки, удаление прекращалось. Так что, если вы используете временное свойство, чтобы помочь отсортировать / разделить ваш UITableView, это может быть вашей проблемой.
Надеюсь, это поможет, и удачи!
-Rick