为刷新清除NSMutableArray



我有一对NSMutableArrays,我需要在刷新视图时清除。然而,当我试图用[array removeAllObjects];清除它们时,我的表视图由于index beyond bounds error而崩溃。所有我做的刷新,是清除数组和调用相同的功能,在viewDidLoad填充表视图。[tableView reloadData]直到方法的最后一行才被调用。

编辑:这是极有可能的问题是这样的:我使用拉刷新外部库,当你向上滚动并释放表,它反弹下来,因此UITableView试图加载下一个单元格,它不能,因为数组被清除,它仍在加载。

答案:从数组中移除对象,立即做一个self。tableView reloadData,然后继续。

问题可能是由于numberOfRowsInSection返回一些计数和您的数据源数组为空。

只调用[array removeAllObjects]numberOfRowsInSection中的return [array count]

我希望这将解决你的问题。祝你好运!!

我以以下方式从表视图中删除单元格-

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];

当你刷新你的数组时,首先检查它是否有对象&然后重新初始化数组并释放一个。

我做的是

[array removeAllObjects];

然后调用

[self.tableview reloadData];

最新更新