在刷新视图时,我需要清除几个NSMutableArrays
。但是,当我尝试使用[array removeAllObjects];
index beyond bounds error
因[tableView reloadData]
导致我的桌面视频崩溃时将其清除。我只使用刷新,清除数组并调用与viewDidLoad相同的函数来填充tableview。直到方法的最后一行才会调用{{1}}。
答案:从数组中删除AllObjects,立即执行self.tableView reloadData,然后继续其余的。
答案 0 :(得分:42)
问题可能是由于numberOfRowsInSection
返回一些计数而您的数据源数组为空。
只需致电[array removeAllObjects]
和numberOfRowsInSection
return [array count]
。
我希望它能解决您的问题。最好的运气!!!
答案 1 :(得分:3)
我以下列方式从表格视图中删除单元格 -
NSMutableArray* indexPathsToDelete = [[NSMutableArray alloc] init];
for(unsigned int i = 0; i < [self.array count]; i++)
{
[indexPathsToDelete addObject:[NSIndexPath indexPathForRow:i inSection:0]];
}
[self.tableView beginUpdates];
[self.array removeAllObjects];
[self.tableView deleteRowsAtIndexPaths:indexPathsToDelete withRowAnimation:UITableViewRowAnimationLeft];
[self.tableView endUpdates];
[indexPathsToDelete release];
答案 2 :(得分:0)
刷新阵列时,首先检查它是否有对象&amp;然后重新初始化您的阵列并释放一个。
答案 3 :(得分:0)
我所做的是
[array removeAllObjects];
然后打电话
[self.tableview reloadData];