滑动以删除单元格时断言失败错误

时间:2013-03-19 01:24:32

标签: ios objective-c

断点位于[self.tableView ...]行。

这是我第一次遇到这样的错误。我正在搞乱一个实现滑动删除功能的cocoapod。

- (void)swipeTableViewCell:(MCSwipeTableViewCell *)cell didTriggerState:(MCSwipeTableViewCellState)state withMode:(MCSwipeTableViewCellMode)mode
{
    NSLog(@"IndexPath : %@ - MCSwipeTableViewCellState : %d - MCSwipeTableViewCellMode : %d", [self.tableView indexPathForCell:cell], state, mode);

    if (mode == MCSwipeTableViewCellModeExit)
    {

        // Remove the item in your data array and then remove it with the following method
        [self.tableView deleteRowsAtIndexPaths:@[[self.tableView indexPathForCell:cell]] withRowAnimation:UITableViewRowAnimationFade];


    }
}

另外,假设有办法解决这个问题,是否可以从Parse后端删除对象?最初我用的是:

PFObject *object = [self.objects objectAtIndex:indexPath.row];
        [object deleteInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
            [self loadObjects];

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

断言失败只能由对NSAssert函数之一的显式调用引起。这些用于测试开发人员做出的某些假设是否正确。他们“断言”这些假设的真实性,并且如果它们不是真的则抛出异常。

据我所知,任何Apple开发者库中都没有声明。这意味着要么你已经在你的代码中加了一个断言,要么 - 更有可能的是 - 你正在使用的cocoapod的代码中有一个断言。获取源代码并对“NSAssert”进行全局搜索,以了解正在发生的事情。

答案 1 :(得分:0)

通常,当从tableView中删除项目时,您需要先修改基础数据。换句话说,如果从数组中绘制表,首先从数组中删除该行,然后从表中删除该行。

如果这不起作用,您可以尝试:

[mytableView beginUpdates];

//do my changes

[mytableView endUpdates];