deleteRowsAtIndexPaths-崩溃应用程序

时间:2011-05-24 05:17:50

标签: objective-c cocoa-touch uitableview ios4

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        NSLog(@"delet it");
        // Delete the row from the data source.
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
    }   
    else if (editingStyle == UITableViewCellEditingStyleInsert)
    {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
    }   
}

为什么这会导致我的应用程序崩溃?

1 个答案:

答案 0 :(得分:2)

在致电deleteRowsAtIndexPaths:withRowAnimation:之前,您需要删除单元格行的数据。

UITableView将检查数据源对象的部分行数。如果新的行数返回值不等于旧行数减1,那么您将遇到麻烦。