我正在尝试从表格视图中删除一个单元格,但它显示异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[RootViewController aBook]: unrecognized selector sent to instance 0x3d217a0'
这是我的代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { NSLog(@"handover values to object"); Book *aBook = [appDelegate.books objectAtIndex:indexPath.row]; NSLog(@"removing"); [[self aBook] removeObjectAtIndex:[indexPath row]]; NSLog(@"deleting row"); // Animate deletion NSArray *indexPaths = [NSArray arrayWithObject:indexPath]; [[self tableView] deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade]; }
控件在打印“删除”字后显示第8行的异常。还警告“根视图控制器无法响应aBook” 救命!!
答案 0 :(得分:1)
也许你的意思是
[aBook removeObjectAtIndex:[indexPath row]];
答案 1 :(得分:1)
你为什么打电话给[self aBook]?这是本地对象!试试[aBook removeObjectAtIndex:]
答案 2 :(得分:1)
运行时已经为您提供了一个非常好的解释:您正在向aBook
类型的对象发送RootViewController
消息(您实现已发布代码的类)。
因此,[self aBook]
无效。
另外,接受更多答案。