исключение при удалении ячейки

#iphone #cocoa-touch

#iPhone #cocoa-touch

Вопрос:

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

 Завершение работы приложения из-за неперехваченного исключения 'NSInvalidArgumentException', причина: '*** -[RootViewController aBook]: нераспознанный селектор, отправленный экземпляру 0x3d217a0'

вот мой код:

- (недействительный)TableView:(UITableView *)TableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{
 если (editingStyle == UITableViewCellEditingStyleDelete)
 { 
 NSLog(@"передача значений объекту");
 Book * aBook = [AppDelegate.books объектатиндекс:indexPath.row];
 NSLog(@"удаление");
 [[самоучитель] removeObjectAtIndex:[строка indexPath]];
 NSLog(@"удаление строки");
 // Анимированное удаление
 NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
 [[self TableView] Удаляет ROWSATINDEXPATHS:indexPaths 
withRowAnimation:UITableViewRowAnimationFade]; 
 }

элемент управления отображает исключение в 8-й строке после ввода слова «удаление». также выдается предупреждение о том, что «корневой контроллер просмотра не отвечает на aBook» помогите!!

Ответ №1:

Почему вы вызываете [selfbook]? Это локальный объект! Попробуйте [aBook removeObjectAtIndex: ]

Комментарии:

1. все еще выдает такое же исключение, когда я использовал aBook removeObjectAtIndex:[строка indexPath]];

Ответ №2:

Среда выполнения уже дает вам очень хорошее объяснение того, что не так: вы отправляете aBook сообщение объекту типа RootViewController (класс, в котором вы реализовали опубликованный код).

Итак, [self aBook] недопустимо.

Кроме того, примите дополнительные ответы.

Комментарии:

1. хорошо!! я попробовал строку кода: aBook removeObjectAtIndex:[строка indexPath]]; предложено другими разработчиками, но по-прежнему выдает ту же ошибку!

2. также выдается предупреждение «Книга может не отвечать на removeobjectatindex». должно быть, я допустил ошибку, но я не могу ее отследить.

Ответ №3:

возможно, вы имеете в виду

 [aBook removeObjectAtIndex:[indexPath row]];