gpt4 book ai didi

ios - 为什么在尝试删除 TableView ios 中的部分时出现断言错误

转载 作者:可可西里 更新时间:2023-11-01 05:54:30 24 4
gpt4 key购买 nike

我有一个包含一些部分的 tableView,它们都有一个页脚,然后我在 Tableview 本身上有一个 tableViewFooter。

如果我向下滚动到我的表格 View 的底部并删除最后一个部分上方(倒数第二个和以上)的任何部分中的最后一个项目(因此完全删除该部分)它会给我这个错误

2014-02-21 13:19:55.066 xxxx[5436:60b] *** Assertion failure in -[UIViewAnimation initWithView:indexPath:endRect:endAlpha:startFraction:endFraction:curve:animateFromCurrentPosition:shouldDeleteAfterAnimation:editing:], /SourceCache/UIKit/UIKit-2903.23/UITableViewSupport.m:2661
Uncaught exception: Cell animation stop fraction must be greater than start fraction

在结束更新

这是我的代码

[self.tableView beginUpdates];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
if(indexPath != nil){
TableSection * sec = [self.sections objectAtIndex:indexPath.section];
NSMutableDictionary *dic =[sec.items objectAtIndex:indexPath.row];

Product* product = [dic valueForKey:PRODUCT];


//removing the item in the section
[sec.items removeObject:dic];

//deleting item from products
NSMutableArray *temp = [NSMutableArray array];
for (Product *p in self.dataCon.listPersister.products) {
if ([p.product.objId isEqualToString: product.product.objId]) {
[temp addObject:p];
}
}

for (Product *p in temp) {
[self.dataCon.listPersister.products removeObject:p];
}


//if it was the last object in section, delete the section else just delete the single row

if(sec.items.count == 0)
{


[self.sections removeObject:sec];
[self.footers removeObjectAtIndex:indexPath.section];
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationFade];

} else
{

[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
USFooterView *footer = [self.footers objectAtIndex:indexPath.section];
footer.totalLabel.text = [self.dataCon.listPersister getTotalForShopId:sec.title];
self.footerView.totalLabel.text = [self.dataCon.listPersister getTotalForAllProducts];
}

}


[self.tableView endUpdates];

我之前有相同的代码,只是我的 tableView 和表格部分没有页脚,但它起作用了,所以我认为它们可能是问题所在,但我不完全确定这就是它起作用的原因。

我看过这篇文章

UITableView tableFooterView may cause crash?

还有它链接到的帖子,但这对我没有帮助。

感谢任何帮助:)

最佳答案

在 else 语句中,您从 TableView 中删除行:

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

但不是来自数据源。从您用作数据源的数组中删除行,它应该可以工作。

关于ios - 为什么在尝试删除 TableView ios 中的部分时出现断言错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com