使用 insertRowsAtIndexPaths 时空数组的索引超出范围

Posted

技术标签:

【中文标题】使用 insertRowsAtIndexPaths 时空数组的索引超出范围【英文标题】:index beyond bounds for empty array when using insertRowsAtIndexPaths 【发布时间】:2012-01-04 04:19:55 【问题描述】:

最初,没有。 Section=0 并且没有。部分中的行数 = 0。当数据可用时,没有。部分更改为 1 和没有。节中的行继续递增 1。

NSArray *indexPathArray=[NSArray arrayWithObject:rowSectionIndexPath];  
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationFade]; 
[tableView endUpdates];

我尝试使用上面的代码在表中插入行。但收到错误 -[NSMutableArray objectAtIndex:]:空数组的索引1超出范围。

我开始将数据插入行的行和节值是 行=1,部分=1; row=2 和 section=1;....等等。

考虑到我已经使用了所有必需的方法 numberOfSectionsInTableView 、 numberOfRowsInSection 、 cellForRowAtIndexPath 和 heightForRowAtIndexPath ,我在代码中缺少什么。

【问题讨论】:

【参考方案1】:

试试这个。它可能会帮助你。

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    
            return 1;
    

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    


      return [displayWineList count];//pass your array count
    

【讨论】:

【参考方案2】:

试试这样..,

   - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  
                 
       return 1;    
      

   - (NSInteger)tableView:(UITableView *)tableView
      numberOfRowsInSection:(NSInteger)section   
              
       return [yourArray count];
     

【讨论】:

【参考方案3】:

我开始将数据插入行的行和节值是 row=1 和 section=1; row=2 和 section=1;....等等。

您是否尝试从 row = 0 开始? (也许你做到了,但我不是英国人,你问题的第一部分让我感到困惑)

因为如果您从一个空表开始,您需要先填充 0,然后再尝试填充 1。

【讨论】:

【参考方案4】:

请写

[tableview reloadData]

[tableView reloadSections:[NSIndexSet indexSetWithIndex:0]withRowAnimation:UITableViewRowAnimationRight];

【讨论】:

以上是关于使用 insertRowsAtIndexPaths 时空数组的索引超出范围的主要内容,如果未能解决你的问题,请参考以下文章

控制 uitableview insertRowsAtIndexPath 动画的速度

带有 2 个动画的 insertRowsAtIndexPaths

insertRowsAtIndexPaths 为每一行调用 cellForRowAtIndexPath

insertRowsAtIndexPaths 自定义动画 Swift

使用 insertRowsAtIndexPaths 时的表视图单元格索引

UITableView insertRowsAtIndexPaths 删除单元格分隔符