当我尝试从可变数组中删除所有对象时,我无法理解我做了什么错误。我的项目是ARC启用 我的代码片段
self.arrMonthHas = [[NSMutableArray alloc] init];
if([self.arrMonthHas count ])
[self.arrMonthHas removeAllObjects];
请帮助我解决当前的问题。
答案 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]; }
希望这有帮助