菜鸟教程小白 发表于 2022-12-13 11:36:17

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


                                            <p><p><strong>我遇到的错误:</strong></p>

<pre><code>Assertion failure in -, /SourceCache/UIKit/UIKit-3347.44.2.2/UITableView.m:1326
2015-10-26 11:38:49.473 huwai *** Terminating app due to uncaught exception &#39;NSInternalInconsistencyException&#39;, reason: &#39;attempt to delete row 0 from section 1, but there are only 1 sections before the update&#39;
*** 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
</code></pre>

<ol>
<li>我正在使用第三方 tableview(即)TQMultistageTableView。</li>
</ol>

<p>2.当此错误发生时,我正在从数组中删除值并再次重新加载表格 View ,在特定时间发生错误,因为它并非总是发生。</p>

<p><strong>这是我的代码</strong></p>

<p>我在这里创建第三方表格 View </p>

<pre><code>-(void)viewWillLayoutSubviews
    {

      if([.model hasPrefix:@&#34;iPad&#34;])
      {
            self.mTableView = [ initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.viewsub.frame.size.height)];
      }
      else if([.model hasPrefix:@&#34;iPhone&#34;])
      {
            self.mTableView =[ 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 ;
}

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

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



    ServiceChargeCell *cell;
cell= [ initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@&#34;cell&#34; forIndexPath:indexPath];
    NSLog(@&#34;inside charge screen product array%@&#34;,arrOrder);
    NSInteger order=;
    NSMutableDictionary *dic=;
    cell.lblname.textColor=;
    cell.lblname.text=];
    NSLog(@&#34;this is lable name=%@&#34;,]);
    NSLog(@&#34;this is from label=%@&#34;,cell.lblname.text);

    return cell;



}
- (UIView *)mTableView:(TQMultistageTableView *)tableView openCellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIView *view = [ initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, tableView.bounds.size.width)];
    view.backgroundColor = ;;
    return view;

}

#pragma mark - Table view delegate

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


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

    if([.model hasPrefix:@&#34;iPhone&#34;])
    {
      return 50;
    }
    else
    {
      return 50;
    }
}
</code></pre>

<p><strong>在我的标题 View 中,我有一个按钮,而该按钮单击操作一些数据正在删除,我再次在这里重新加载表格 View 。</strong></p>

<pre><code>-(void)btnClick:(UIButton *)click
{
    if(click.selected==NO)
    {
      NSString *tag=;
      int key=;
      NSMutableDictionary *dic=;
      ;




    }
    ;



}
</code></pre>

<p>为什么在重新加载 tableview 时会发生这种错误?请任何人帮助我解决这个问题</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我查看了 TQMultistageTableView,显然在点击 headerView 时,它包含删除或插入部分的逻辑。我不确定这个第三方的东西是如何工作的,但看起来在你修改数据之后,第三方 tableView 得到了某种数据不匹配,它试图删除一个不存在的行。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 重新加载 tableview 时发生断言失败?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33339602/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33339602/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 重新加载 tableview 时发生断言失败?