0

我正在使用UISplitViewController具有 aUIMasterViewController和 a的 ipad 创建一个小型应用程序UIDetailViewController。我已经删除了UITableView附带的,我通过从 Xcode 对象面板中拖放一个来UIMasterViewController创建自己的。UITableView我已经成功地填充了UITableView数据,但是当我尝试从中删除一个单元格或记录时,我似乎收到了“线程 1:信号 SIGABRT”错误。

下面是我的编辑按钮代码。(这是一个自定义按钮):

//Edit Button
int cnt = 0;
- (IBAction)buttonEditPressed:(id)sender {

    if (cnt == 0){
    [self.myTableView setEditing:YES animated:YES];
    _buttonEdit.title = @"Done";
        cnt++;
    }
    else if (cnt == 1){
        [self.myTableView setEditing:NO animated:YES];
        _buttonEdit.title = @"Edit";
        cnt--;
    }

}

以下代码是删除应该发生的地方(但给了我错误):

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(editingStyle == UITableViewCellEditingStyleDelete){

        [self.moduleTitleStack removeObjectAtIndex:indexPath.row];
        [self.myTableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
    [self.myTableView reloadData];

}

[更新] numberOfRowsInSection 实施:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections][section];
    //return [sectionInfo numberOfObjects];
    return [_numberOfRows count];
}

我认为这可以完成工作,但不确定为什么会出现此错误。

4

1 回答 1

0

对于答案:

[tableView reloadData];如果您只是删除了该行并且没有其他任何更改,则无需执行此操作。

此外,您遇到的崩溃是您正在从 中删除一个对象self.moduleTitleStack,但行数正在检查_numberOfRows. (我猜它们是不同的数组),这就是你遇到的问题。您需要更新_numberOfRows以反映表格视图的新设置

了解更多有关您遇到的异常的一般提示:

转到左侧的断点面板,然后在左下方单击Add> Exception Breakpoint,然后单击确定。每当抛出异常时,调试器都会停止,为您提供有关异常的一些信息,以及它发生的位置和方式的确切堆栈跟踪

于 2013-05-15T20:07:10.320 回答