使用 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