Ios NSMutableArray RemoveAllObject崩溃

Ios NSMutableArray RemoveAllObject崩溃,ios,nsmutablearray,Ios,Nsmutablearray,碰撞代码为: Car class -------------- price color 为什么崩溃,我如何解决它 应用程序退出时没有任何输出我猜,您正在某个地方发布列表,因此您对removeAllObjects的调用被发送到一个已解除分配的实例。如果没有堆栈跟踪和一些更详细的信息,就无法确定这是一个EXC_BAD_访问错误还是什么?猜测一下,我会说您正在某个地方发布列表,因此您对removeAllObjects的调用被发送到一个deallocated实例。如果没有堆栈跟踪和一些更详细的信息,就

碰撞代码为:

Car class
--------------
price
color
为什么崩溃,我如何解决它


应用程序退出时没有任何输出

我猜,您正在某个地方发布列表,因此您对removeAllObjects的调用被发送到一个已解除分配的实例。如果没有堆栈跟踪和一些更详细的信息,就无法确定这是一个EXC_BAD_访问错误还是什么?

猜测一下,我会说您正在某个地方发布列表,因此您对removeAllObjects的调用被发送到一个deallocated实例。如果没有堆栈跟踪和一些更详细的信息,就无法确定这是一个EXC\u BAD\u访问错误还是什么?

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

很可能是您多次释放阵列中的一个或多个对象。当NSMutableArray试图释放该对象时,它会崩溃,因为该对象已被释放。

我不知道您的段中的someCode部分中有什么内容。您首先注释掉该代码,然后检查应用程序是否崩溃。如果它仍然崩溃,那么只考虑我已经给出了下面。我的意思是,在采取变通办法之前,请确保代码没有任何问题:

试试这段代码,看看它现在是否崩溃了。我知道这毫无意义,但我也经历过一次。有一次,当数组计数为零时,removeAllObjects对我来说崩溃了。我怀疑某处存在SDK bug:

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 bug:

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

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

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

我将[super dealloc]移到了所有发行版的下方。我的[…removeAllObjects]工作得很好。

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

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

我将[super dealloc]移到了所有版本的下方..并且我的[..removeAllObjects]工作正常..

将数组属性设置为在接口部分保留。一旦我做了同样的事情,它对我很有效。请再试一次。

在接口部分将数组属性设置为Retain。一旦我做了同样的事情,它对我很有效。试试看。

跟你赌10美元,如果你真的一字不差地运行代码,它就不会崩溃。错误在一些代码中。我认为创建一个简单的规则是一个好主意:gor crash-提供堆栈跟踪。解决方案是,我在[Car dealloc]中发布了价格,这导致崩溃,如果你真的一字不差地运行代码,它将不会崩溃。错误在一些代码中。我认为创建一个简单的规则是一个好主意:gor crash-提供堆栈跟踪。决定我在[Car dealloc]中发布了导致崩溃的价格谢谢,决定我在[Car dealloc]中发布了价格这导致了crash@WangYang您没有提供堆栈跟踪,因此很难判断情况是否如此。再加上,我经历的类似崩溃的堆栈跟踪如下:致命异常:NSRangeException***-[\uu NSArrayM removeObjectAtIndex:]:索引0超出空数组的界限,这可能会帮助尝试查看是否存在这种情况的人。谢谢!我没有找到它,但后来我意识到我实例化了一个NSArray而不是NSMutableArray。谢谢,我决定在[Car dealloc]中发布价格,这导致了crash@WangYang您没有提供堆栈跟踪,因此很难判断情况是否如此。再加上,我经历的类似崩溃的堆栈跟踪如下:致命异常:NSRangeException***-[\uu NSArrayM removeObjectAtIndex:]:索引0超出空数组的界限,这可能会帮助尝试查看是否存在这种情况的人。谢谢!我没有找到它,但后来我意识到我实例化了一个NSArray而不是NSMutableArray。我将它从非原子设置为复制到非原子,强,它就工作了。我将它从非原子设置为复制到非原子,强,它就工作了。