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
错误或什么?
将数组属性设置为保留在接口部分。 一旦我做了同样的工作对我来说。 只是尝试一次。