我正在使用UISplitViewController
创建一个小型ipad应用程序,其UIMasterViewController
和UIDetailViewController
。我删除了UITableView
附带的UIMasterViewController
,并通过从Xcode Objects面板中拖放一个来创建我自己的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];
}
[UPDATE] numberOfRowsInSection实现:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections][section];
//return [sectionInfo numberOfObjects];
return [_numberOfRows count];
}
我认为这可以胜任,但不知道为什么我会收到这个错误。
答案 0 :(得分:0)
答案:
如果您刚刚删除了行而没有其他更改,则无需执行[tableView reloadData];
。
此外,您遇到的崩溃是您要从self.moduleTitleStack
删除对象,但行计数正在检查_numberOfRows
。 (我猜他们是不同的数组),这就是你得到的问题。您需要更新_numberOfRows
以反映表格视图的新设置
了解更多有关您获得的例外情况的一般提示:
转到左侧的断点面板,然后点击左下角的Add
&gt; Exception Breakpoint
,然后点击OK。每当抛出异常时,调试器都会停止,为您提供有关异常的一些信息,以及它在何处以及如何发生的确切堆栈跟踪