0

应用程序在模拟器和设备上因信号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是返回 a 的方法,其中NSMutableArray包含从startPoint到 的点finalPoint。这在今天早些时候工作得很好,但是在我开始测试新的东西之后,我想我把它弄坏了。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.为什么会发生这种情况?

4

1 回答 1

1

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

但是错误消息很清楚:您addChild多次尝试同一个节点,无论是同一个父节点还是不同的父节点。检查您的代码以了解可能发生这种情况的情况。

于 2013-04-07T18:53:23.383 回答