断点位于[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];
感谢您的帮助。
答案 0 :(得分:1)
断言失败只能由对NSAssert
函数之一的显式调用引起。这些用于测试开发人员做出的某些假设是否正确。他们“断言”这些假设的真实性,并且如果它们不是真的则抛出异常。
据我所知,任何Apple开发者库中都没有声明。这意味着要么你已经在你的代码中加了一个断言,要么 - 更有可能的是 - 你正在使用的cocoapod的代码中有一个断言。获取源代码并对“NSAssert”进行全局搜索,以了解正在发生的事情。
答案 1 :(得分:0)
通常,当从tableView中删除项目时,您需要先修改基础数据。换句话说,如果从数组中绘制表,首先从数组中删除该行,然后从表中删除该行。
如果这不起作用,您可以尝试:
[mytableView beginUpdates];
//do my changes
[mytableView endUpdates];