-1

我知道以前在 SO 上已经问过这类问题,我几乎尝试了所有这些问题,但无济于事。我正在尝试从 UITableView 中删除一行。这是我的代码。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //calls to a method that deletes the row from the backend SQLite database
        [self deleteCompany:indexPath.row];

        //theCompanies is a NSMutableArray. When the app starts, it retrieves the data and display it in the UITableView
        [theCompanies removeObjectAtIndex:indexPath.row];

        //Below line is where the error occurs. 
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:YES
              UITableViewRowAnimationFade:UITableViewRowAnimationFade];
    }   
    else if (editingStyle == UITableViewCellEditingStyleInsert) {

    }   
}

构建应用程序时出现以下编译器错误。

'UITableView' 没有可见的@interface 声明选择器...

我不知道接下来我应该做什么。任何帮助,将不胜感激。

谢谢你。

4

2 回答 2

2

更改此行:

[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:YES
              UITableViewRowAnimationFade:UITableViewRowAnimationFade];

[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:UITableViewRowAnimationFade];
于 2013-01-09T12:08:44.193 回答
2

方法是这样的

- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

有两个参数,请参见此处Apple UITableView 文档

但是您使用 like is is is 和 withRowAnimation 作为 BOOL 但它不是 BOOL。

尝试这样的事情:

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
于 2013-01-09T12:06:42.367 回答