从nsmutablearray中删除所有对象时,iOS App崩溃了吗?

时间:2013-05-16 09:54:15

标签: iphone ios automatic-ref-counting

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

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

请帮助我解决当前的问题。

2 个答案:

答案 0 :(得分:1)

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

<强> P.S。请发布您的错误。

答案 1 :(得分:0)

你需要在删除之前向数组中添加一些对象,你在这里做的是初始化一个可变数组的新实例并刷新它的内容,这些内容在数组中不存在,你可以做类似的事情。

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

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

if(someBusinessCondition == YES)
{
  [self.arrMonthHas removeAllObjects];
}

希望这有帮助