#uitableview #core-data
#uitableview #основные данные
Вопрос:
У меня есть UITableView, который поддерживается основными данными с разделами, сгруппированными по дате. Я могу удалять и добавлять, пока я нахожусь в этом представлении, просто отлично. NSFetchController и UITableView отлично синхронизируются. Но затем я перехожу к отдельному объекту, вношу изменения, сохраняю и возвращаю. Я не добавляю из другого представления, но иногда удаляю, большую часть времени я просто вношу изменения в существующие записи, и ни одно из изменений не заставило бы их изменить, к какому разделу они принадлежали. В этот момент, если я попытаюсь удалить строку, я получу:
Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1448.89/UITableView.m:974
2011-10-01 14:55:42.691 Lotus Bud[8073:fa03] Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. Invalid update: invalid number of sections. The number of sections contained in the table view after the update (1) must be equal to the number of sections contained in the table view before the update (1), plus or minus the number of sections inserted or deleted (0 inserted, 1 deleted). with userInfo (null)
Что мне нужно сделать, чтобы вернуть их в синхронизацию после сохранения из другого представления.
Ответ №1:
Я бы посоветовал прослушивать NSManagedObjectContextDidSaveNotification
и прерывать работу отладчика при его запуске. Затем вы можете увидеть, какой раздел удаляется, и, надеюсь, вернуться к источнику проблемы.