介绍SKScene BAD ACCESS崩溃

时间:2014-08-12 12:57:38

标签: ios sprite-kit exc-bad-access skscene sknode

我在SpriteKit中构建一个相当简单的游戏。这是我第一次使用SpriteKit,到目前为止它已经顺利进行了。我现在已经明白了,当玩家完成游戏时,我想呈现一个新的SKScene。我得到了一个我无法诊断的Bad Access崩溃。

我想我正确地呈现了这个场景:

UnlockRockets *scene = [[UnlockRockets alloc] initWithSize:self.scene.size];
[self.view presentScene:scene];

每次我在presentScene上得到以下错误:行 - 线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x10)

查看线程跟踪,看起来崩溃可能源于[SKNode isPaused]

任何建议都会很棒,我完全失去了这个建议。

2 个答案:

答案 0 :(得分:0)

我认为UnlockRockets类中的initWithSize方法存在问题

答案 1 :(得分:0)

我遇到了与SKView目前场景相同的问题,即使场景是绝对新的,没有任何配置。所以我用这个来解决它。

    myScene *newScene = [myScene sceneWithSize:size];
    newScene.scaleMode = SKSceneScaleModeResizeFill;
    SKView *currentskView = (SKView*)  self.scene.view;
    SKScene *currentScene = (SKScene*) self.scene;
    [currentScene removeAllChildren];
    [currentScene removeFromParent];
    [currentskView presentScene:newScene];

我也注意到,如果声明对场景的强烈引用 - 它的工作方式与你一样,但在这种情况下,即使它不可见,场景也存在于内存中,xCode通知有内存警告。