NSMutablearray removeallobjects使我的应用程序崩溃。在NSZombie工作正常

时间:2011-06-28 12:10:11

标签: iphone uitableview crash nsmutablearray exc-bad-access

这就是我宣布NSMutablearray

的方式
 self.otherDealsList = [[NSMutableArray alloc] init];

我将从Web服务中获取一些值并将其插入此数组中。这个可变数组用于填充我的tableview数据。但是当用户单击按钮时,我想从Web服务获取新数据并将其插回到可变数组中。

在替换可变数组内容的过程中,如果用户单击或滚动tableview,应用程序将崩溃。所以为了避免这种情况,我首先尝试清空可变数组并重新加载表来清空表视图。这是我使数组为空的代码

if ([self.otherDealsList count] > 0) {

                [self.otherDealsList removeAllObjects];
                [tableView reloadData];
            }

但我的应用在"Bad access"行上运行时会一直崩溃('removeallobjects')。我很确定我没有在任何地方发布它。

我也尝试使用NSZombie thingy来运行它。但它根本不会崩溃。

2 个答案:

答案 0 :(得分:3)

我正在联系你另一个与你非常相似的问题。在调用removeAllObjects之前,您最有可能在NSMutableArray中释放一些对象,这就是导致问题的原因。请在此处阅读更多内容 - NSMutableArray removeAllObjects crash

答案 1 :(得分:1)

我相信你可能会额外保留你的物品。

self.otherDealsList = [[[NSMutableArray alloc] init] autorelease];