应用程序在模拟器和设备上崩溃但在分析时没有崩溃

时间:2013-04-07 17:07:33

标签: xcode cocos2d-iphone xcode4.5 instruments

应用程序在模拟器和设备上与信号SIGABRT(调试器输出为child already added. It can't be added again)崩溃。当我在模拟器或设备上运行应用程序时,在Xcode中分析应用程序时运行正常。这是为什么?

更新:我发现这行代码导致了问题:

Mover *moverObject = [[[Mover alloc] init] autorelease];
NSMutableArray * array = [moverObject moveToward:startPoint :finalPoint]//<-- This is the problem

moveToward是一种返回NSMutableArray的方法,其中包含startPointfinalPoint的点数。这在今天早些时候工作正常,但在我开始测试新东西之后,我想我打破了它。我在Mover.h/.m(我在添加代码的位置)的实际GameLayer.m中没有做任何更改。我不确定我加入了什么导致问题。

更新2:我使用断点进行了更多挖掘,我发现了

GameLayer *gameLayerObject = [[GameLayer alloc] init];<-- This causes the crash

在方法mover.m所在的moveToward::内,这是最远的,而不会崩溃。错误再次是child already added. It can't be added again.为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

这可能只是巧合。很难说,因为你没有发布任何代码。

错误消息很明显:您尝试将addChild同一个节点多次尝试同一个父节点或同一个父节点。检查代码是否存在这种情况。