NSMutableArray removeAllObjects崩溃

Car class -------------- price color 

崩溃代码是:

 NSMutableArray *list = [[NSMutableArray alloc] init]; Car *car = [[Car alloc] init]; car.price = 10; car.color = 1; [list addObject:car]; // some code [list removeAllObjects]; // Crash here 

为什么崩溃,我怎么解决它。

没有输出的应用程序退出

我不知道你有什么在你的段“someCode”部分。 您首先注释掉该代码,并检查应用程序是否崩溃。 如果仍然崩溃,那么只考虑下面给出的内容。 我的意思是,在进行解决方法之前,请确保您的代码没有任何问题。

试试这个代码,看看现在是否崩溃。我知道这是没有意义的,但也发生过一次。 一旦数组数为零,removeAllObjects为我崩溃。 我怀疑某处的SDK错误:(

 if([list count]){ [list removeAllObjects]; } 

很有可能你会多次释放数组中的一个或多个对象。 当NSMutableArray尝试释放该对象时,它会崩溃,因为该对象已被丢弃。

我只是遇到了同样的事情。 在我的对象的dealloc方法中,我有:

 -(void) dealloc { [super dealloc];// <--- le' culprit! [Image_ID release]; [Image_Number release]; [Image_UID release]; [Series_ID release]; [Series_UID release]; [Study_UID release]; // <--- it should be here... } 

我移动[super dealloc]下面所有的release..and我的[…. removeAllObjects]工作正常..

猜测,我会说你正在释放list ,所以你的removeAllObjects调用被发送到一个释放的实例。 不可能确定没有堆栈跟踪和一些更多的细节,虽然这是一个EXC_BAD_ACCESS错误或什么?

将数组属性设置为保留在接口部分。 一旦我做了同样的工作对我来说。 只是尝试一次。