【问题标题】:can't delete cell in searchResultsTableView无法删除 searchResultsTableView 中的单元格
【发布时间】:2015-12-14 06:47:52
【问题描述】:

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

-[UISearchResultsTableView 中的断言失败 _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.29.5/UITableView.m:1720 2015-12-14 09:29:04.907 Unirenter [552:178776] *** 终止应用程序到期 未捕获的异常“NSInternalInconsistencyException”,原因: '无效更新:第 0 节中的无效行数。 更新 (1) 后包含在现有节中的行必须是 等于该节之前包含的行数 update (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

【问题讨论】:

  • deleteMessage 只是对服务器的 otpralyat 请求。对我来说,至少在视觉上使用 deleteRowsAtIndexPaths 方法删除一个单元格

标签: ios objective-c iphone uitableview cell


【解决方案1】:

我了解什么业务。在简单表中,我首先删除了一个元素,然后进行了更新,并且在检索中不存在。我添加了一个方法[_filteredCandyArray removeObjectAtIndex:indexPath.row]; 并获得了一切

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多