我正在尝试使用Apple提供的“编辑” - > ( - ) - > “删除”功能可从我的UITableView中删除一行。
我在此处激活了按钮:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
这里创建的UITableViewCell:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
PositionCell *cell = (PositionCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[PositionCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
FSExAppDelegate *appDelegate = (FSExAppDelegate *)[[UIApplication sharedApplication] delegate];
Position *pos = [appDelegate.positions objectAtIndex:indexPath.row];
[cell setPosition:pos];
// Configure the cell.
return cell;
}
然后只是Apple提供的代码:
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source.
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
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.
}
}
当我执行删除操作时,我陷入了:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
“线程1:程序接收信号'SIGABRT'”。
我一直在拖网搜索这些问题,但似乎无法找到解决这个问题的任何内容。有人可以帮忙吗?
DJS。
答案 0 :(得分:2)
我想你要离开了:
[mutableArrayAsDataSource removeObjectAtIndex:[indexPath row]];
这应该在deleteRowsAtIndexPaths调用之前发生。
答案 1 :(得分:0)
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
请将此更改为
[tableView deleteRowsAtIndexPaths:[urArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];