无法删除searchResultsTableView中的单元格

时间:2015-12-14 06:47:53

标签: ios objective-c iphone uitableview cell

我无法删除结果表中的单元格,一切正常,搜索后发出错误

  

断言失败 - [UISearchResultsTableView   _endCellAnimationsWithContext:],/ BuildRoot / Library / Cache / com.apple.xbs / Sources / UIKit / UIKit-3512.29.5 / UITableView.m:1720   2015-12-14 09:29:04.907 Unirenter [552:178776] ***终止app到期   未被捕获的异常' NSInternalInconsistencyException',原因:   '无效更新:第0部分中的行数无效   更新(1)后必须包含在现有部分中的行   等于之前该部分中包含的行数   更新(1),加上或减去插入或删除的行数   该部分(0插入,1删除)和加号或减号的数量   移入或移出该部分的行(0移入,0移出)。'

     

***首先抛出调用堆栈:(0x220e185b 0x337a2dff 0x220e1731 0x22e72ddb 0x26408269 0x264218c9 0x264217a3 0x8ab6b 0x26555d97   0x26692ba5 0x2624d5e1 0x2624d571 0x26235487 0x2624cec1 0x26206fe7   0x26245c89 0x2624543b 0x262162f1 0x26214937 0x220a47c7 0x220a43b7   0x220a271f 0x21ff50d9 0x21ff4ecd 0x2b36aaf9 0x2627e2dd 0x8f031   0x33ef0873)libc ++ abi.dylib:以未捕获的异常终止   输入NSException

这里有删除代码

UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"Delete" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){

if (tableView == self.tableView) {
    [self deleteMessage:[_id_message objectAtIndex:indexPath.row]];

    [_id_message removeObjectAtIndex:indexPath.row];//or something similar to this based on your data source array structure

    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else
{

    NSLog(@"Удаляем id -%d ",[self TitleWithId:[_filteredCandyArray objectAtIndex:indexPath.row]]);
  //  [_id_message removeObjectAtIndex:[self TitleWithId:[_filteredCandyArray objectAtIndex:indexPath.row]]];
     [self.searchDisplayController.searchResultsTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];


}

此代码位于方法tableView editActionsForRowAtIndexPath

2 个答案:

答案 0 :(得分:0)

我明白什么是生意。在简单的表中,我首先删除了一个元素,然后更新并且在检索中不存在。我添加了一个方法[_filteredCandyArray removeObjectAtIndex:indexPath.row];,所有收益

答案 1 :(得分:0)

您从其发送deleteRowsAtIndexPaths:withRowAnimation:的数据源中删除该项,它应该可以正常工作。适用于任何tableView的规则相同,如果修改数据源并希望逐步更新表视图,请确保在数据源和表结构之间保持一致。日Thnx