NSFetchedResultsController: исключение, когда объект перемещается из более высокого индекса в более низкий индекс - PullRequest
1 голос
/ 03 июля 2010

У меня есть табличное представление, управляемое NSFetchedResultsController.Я использую предоставленный Apple шаблонный код в моем TableViewController.Мой предикат получает объекты на основе их имени.Кажется, все работает нормально, когда дело доходит до добавления / удаления объектов с помощью кнопки «редактировать».Если я программно изменяю имя объекта, все также работает нормально , если только изменение имени не приведет к перемещению объекта вверх по таблице, и в этом случае я получаю эту ошибку:

Серьезное приложениеошибка.Исключение было получено от делегата NSFetchedResultsController во время вызова -controllerDidChangeContent :.*** - [NSMutableArray objectAtIndex:]: индекс 1 за пределами [0 .. 0] с userInfo (null)

Скажем, у меня есть три объекта с именами A, C и D. Если я переименую Dдо B, то приложение вылетает.Если я переименую C в B, все будет круто.

Что здесь происходит?

Ответы [ 2 ]

1 голос
/ 03 июля 2010

Использование подкласса SafeFetchedResultsController от Deusty NSFetchedResultsController может помочь в хитрых операциях обновления строк и перемещения, которые приводят в движение класс Apple, вызывая эти исключения.

0 голосов
/ 19 июля 2011

В сообщении об ошибке говорится, что в вашем коде возникла исключительная ситуация, и вы вызвали objectAtIndex: с недопустимым индексом.Похоже, вы удаляете объект из массива, затем пытаетесь получить его, прежде чем вставить обратно в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...