删除单元格时出现异常

时间:2011-04-05 12:12:54

标签: iphone cocoa-touch

我正在尝试从表格视图中删除一个单元格,但它显示异常:

 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” 救命!!

3 个答案:

答案 0 :(得分:1)

也许你的意思是

[aBook removeObjectAtIndex:[indexPath row]];

答案 1 :(得分:1)

你为什么打电话给[self aBook]?这是本地对象!试试[aBook removeObjectAtIndex:]

答案 2 :(得分:1)

运行时已经为您提供了一个非常好的解释:您正在向aBook类型的对象发送RootViewController消息(您实现已发布代码的类)。

因此,[self aBook]无效。

另外,接受更多答案。