Ошибка утверждения для UITableView selectRowAtIndexPath

Я чувствую, что это вопрос, требующий особого внимания... у меня неплохое гугл-фу, но я не смог получить что-нибудь полезное.

Это самая простая вещь, и все же я не могу понять, в чем проблема.

У меня есть UITableView. Это подвид, который мой VC называет _form. Я использую его для стилизации, а не для отображения данных. Имеет 2 клетки.

При определенном событии я пытаюсь выбрать другую ячейку, используя selectRowAtIndexPath:animated:scrollPosition.

Когда я это делаю, это SIGABRTS.

Простой пример:

- (IBAction)submitClicked:(id)sender
{
    [_submit setTitle:@"Wha!?" forState:UIControlStateNormal];
    NSIndexPath *row = [NSIndexPath indexPathWithIndex:0];
    NSLog(@"%d", [[_form indexPathForSelectedRow] row]);
    [_form selectRowAtIndexPath:row animated:YES scrollPosition:YES];
}

Заголовок кнопки изменен, И таблица печатает, что выбранная строка равна 0 или 1, но при попытке выбрать нужную ячейку ломается:

2012-03-09 21:57:39.905 <omitted>[16329:207] 0
2012-03-09 21:57:39.908 <omitted>[16329:207] *** Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableViewSupport.m:2598
(gdb)

Я предполагаю, что это подразумевает что-то не так с настройкой моей таблицы, но я не уверен, что именно. Обычный выбор ячеек в таблице (щелчок по ней) работает, о чем свидетельствует ожидаемый ответ в моем tableView:didSelectRowAtIndexPath. Все остальное работает нормально с тем, как я это настроил, кроме этого.

(Кроме того, я, другие люди, отвечаю с дополнительной отладочной информацией, а не только "(gdb)". Как я могу получить это?)

Спасибо!

6
задан Liandri 10 March 2012 в 06:09
поделиться