gpt4 book ai didi

ios - 重新加载 tableview 时发生断言失败?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:11:46 26 4
gpt4 key购买 nike

我得到的错误:

Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit/UIKit-3347.44.2.2/UITableView.m:1326
2015-10-26 11:38:49.473 huwai[1784:684487] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to delete row 0 from section 1, but there are only 1 sections before the update'
*** First throw call stack:
(0x2a94f0d7 0x390cec77 0x2a94efad 0x2b64fbc9 0x2e1771d7 0xe865f 0xe61db 0x2e12d9ef 0x2dfdcb1d 0x2e3f6811 0x2dfa5ad5 0x2dfa3a4f 0x2dfdaeed 0x2dfda7dd 0x2dfb09b5 0x2e2270ff 0x2dfaf3b7 0x2a91500f 0x2a914423 0x2a912aa1 0x2a85e6d1 0x2a85e4e3 0x321fa1a9 0x2e010445 0x11f44d 0x3969caaf)
libc++abi.dylib: terminating with uncaught exception of type NSException
  1. 我正在使用第三方 tableview(即)TQMultistageTableView。

2.当这个错误发生时意味着,我正在从数组中删除值并再次重新加载 TableView ,在特定时间发生的错误并非总是发生,有时它会发生。

这是我的代码

我在这里创建第三方表格 View

  -(void)viewWillLayoutSubviews
{

if([[UIDevice currentDevice].model hasPrefix:@"iPad"])
{
self.mTableView = [[TQMultistageTableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.viewsub.frame.size.height)];
}
else if([[UIDevice currentDevice].model hasPrefix:@"iPhone"])
{
self.mTableView =[[TQMultistageTableView alloc] initWithFrame:CGRectMake(0, 0, self.viewsub.frame.size.width,self.viewsub.frame.size.height)];
}
self.mTableView.delegate = self;
self.mTableView.dataSource = self;
self.mTableView.clipsToBounds=YES;
self.mTableView.tableView.clipsToBounds=YES;



}

- (NSInteger)numberOfSectionsInTableView:(TQMultistageTableView *)tableView
{

return [arrOrder count];
}

- (NSInteger)mTableView:(TQMultistageTableView *)tableView numberOfRowsInSection:(NSInteger)section
{

return 1;
}
#pragma mark row
- (UITableViewCell *)mTableView:(TQMultistageTableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{



ServiceChargeCell *cell;
cell = [[ServiceChargeCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell" forIndexPath:indexPath];
NSLog(@"inside charge screen product array%@",arrOrder);
NSInteger order=[productid integerValue];
NSMutableDictionary *dic=[flow.dicOrder objectForKey:@(order)];
cell.lblname.textColor=[UIColor whiteColor];
cell.lblname.text=[NSString stringWithFormat:@"%@",[dic objectForKey:@"description"]];
NSLog(@"this is lable name=%@",[NSString stringWithFormat:@"%@",[dic objectForKey:@"description"]]);
NSLog(@"this is from label=%@",cell.lblname.text);

return cell;



}
- (UIView *)mTableView:(TQMultistageTableView *)tableView openCellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, tableView.bounds.size.width)];
view.backgroundColor = [UIColor colorWithRed:187/255.0 green:206/255.0 blue:190/255.0 alpha:1];;
return view;

}

#pragma mark - Table view delegate

- (CGFloat)mTableView:(TQMultistageTableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{


if([[UIDevice currentDevice].model hasPrefix:@"iPhone"])
{
return 40;
}
else
{
return 80;
}
}
- (CGFloat)mTableView:(TQMultistageTableView *)tableView heightForHeaderInSection:(NSInteger)section
{

if([[UIDevice currentDevice].model hasPrefix:@"iPhone"])
{
return 50;
}
else
{
return 50;
}
}

在我的标题 View 中,我有一个按钮,而该按钮的点击操作正在删除一些数据,我再次在此处重新加载表格 View 。

-(void)btnClick:(UIButton *)click
{
if(click.selected==NO)
{
NSString *tag=[NSString stringWithFormat:@"%lu",(long)click.tag];
int key=[tag intValue];
NSMutableDictionary *dic=[flow.dicOrder objectForKey:@(key)];
[flow removeOrder:dic];




}
[self.mTableView.tableView reloadData];



}

为什么在重新加载 tableview 时会出现这种错误?请任何人帮助我解决这个问题

最佳答案

我查看了 TQMultistageTableView,显然在点击 headerView 时,它包含用于删除或插入部分的逻辑。我不确定第三方的工作原理,但似乎在您修改数据后,第三方 tableView 出现某种数据不匹配,并尝试删除不存在的行。

关于ios - 重新加载 tableview 时发生断言失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33339602/

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