-5

当我试图从可变数组中删除所有对象时,我无法理解我犯了什么错误。我的项目是 ARC 启用我的代码片段

 self.arrMonthHas =  [[NSMutableArray alloc] init];
 if([self.arrMonthHas count ])
       [self.arrMonthHas removeAllObjects];

请帮助我解决当前的解决方案。

4

2 回答 2

1

从 中删除所有对象后self.arrMonthHas,请确保self.arrMonthHas在其他任何地方都没有遇到。因为虽然所有的对象都被删除了,但仍然为相同的对象分配了内存。因此,如果您尝试访问数组的任何元素,它将崩溃。

PS请发布您的错误。

于 2013-05-16T09:55:55.530 回答
0

您需要在删除它们之前向数组添加一些对象,您在这里所做的是初始化一个可变数组的新实例并刷新它的内容,这些内容首先不存在于数组中,您可以执行类似的操作

self.arrMontHas = [[NSMutableArray alloc] initWithObjects:firstObject,secondObject,thirdObject,nil];

然后根据您的业务逻辑,您可以删除数组的所有对象

如果(某些商业条件 == 是)
{
  [self.arrMonthHas removeAllObjects];
}

希望这可以帮助

于 2013-05-16T10:30:35.830 回答