在TableViewController中删除行 - "无法识别的选择器"碰撞

时间:2015-06-24 19:11:28

标签: ios

我试图删除两个"产品"在我的tableView中,来自productArray属性,它是一个MutableArray。

 [self.productsArray removeObjectAtIndex:indexPath.row];

    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

我在控制台中收到此错误:

  

- [__ NSArrayI removeObjectAtIndex:]:无法识别的选择器发送到实例0x7ff6f850e410   2015-06-24 15:09:24.568 NavCtrl [17333:8660630] ***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [__ NSArrayI removeObjectAtIndex:]:无法识别的选择器已发送例如0x7ff6f850e410'

查看调试器似乎indexPath属性为NULL。我猜这是我的代码崩溃的一个很好的候选人,但我不知道为什么indexPath没有我删除的行的值。

感谢任何帮助,如果需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:0)

[__NSArrayI removeObjectAtIndex:]:  indicates that your array is not mutable!

确保数组确实是可变的。如果是,请尝试先删除单元格,然后从阵列中删除该对象。

答案 1 :(得分:0)

它在吗?

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;

您可以粘贴所有代码吗?

试试这个来测试:

NSIndexpath *idxPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.productsArray removeObjectAtIndex:idxPath];

    [tableView beginUpdates];
    [tableView deleteRowsAtIndexPaths:@[idxPath] withRowAnimation:UITableViewRowAnimationFade];
    [tableView endUpdates];