Просмотр таблицы по умолчанию - удаление разделов - PullRequest
3 голосов
/ 12 марта 2009

Мое приложение содержит табличное представление со строками и разделами.
Когда я удаляю последний элемент раздела, я удаляю раздел. Работает нормально.
Но когда я перемещаю последний ряд раздела в другой раздел, я получаю сообщение об ошибке.

Вот мой код в обоих случаях:

[categoryArray removeObjectAtIndex:indexPath.section];
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop];

Вот ошибка, которая возникает в moveRowAtIndexPath: fromIndexPath: toIndexPath:

2009-03-11 17:56:09.524 Test[5140:20b] 1
2009-03-11 17:56:09.525 Test[5140:20b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (5) beyond bounds (5)'

Любая помощь будет отличной!

Ответы [ 3 ]

2 голосов
/ 12 марта 2009

Ну, на самом деле мой код не пытается получить доступ к элементу. Я думаю, что ошибка происходит от метода UITableView (что я не знаю, потому что у нас есть доступ только к заголовочным файлам SDK). Проблема возникает в этой точке:

[tableView deleteSections:[NSIndexSet indexSetWithIndex:fromIndexPath.section] withRowAnimation:UITableViewRowAnimationTop];
0 голосов
/ 10 июля 2012

У меня была эта проблема, и я просто решил ее. В моем случае я использовал Core Data, и мне пришлось обернуть логику удаления в

    [tableView beginUpdates];
    ...
    [tableView endUpdates];

Я должен был обернуть все; до того, как я удалил данные / раздел, до тех пор, пока я не сохранил контекст. Надеюсь, это поможет.

0 голосов
/ 12 марта 2009

Похоже, вы пытаетесь получить доступ к шестому элементу массива из пяти элементов. Используете ли вы размер массива в качестве индекса без вычитания 1?

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