奇怪的EXC_BAD_ACCESS SpriteKit removeSubsprite崩溃

时间:2014-03-23 21:01:31

标签: ios objective-c sprite sprite-kit skscene

我是SpriteKit的新手,刚刚建立了我的第一个游戏。一切都很好,直到iOS 7.1。现在,经过几次推进到一个新的水平并呈现一个新的Scene,它崩溃了。我不认为我以不正确的方式呈现它:

ZSSMyScene *nextLevel = [[ZSSMyScene alloc] initWithSize:self.size level:self.level score:score];
[self.view presentScene:nextLevel];

我收到EXC_BAD_ACCESS错误,看起来好像发生在removeSubsprite上,但我无法在代码中的任何地方找到我要移除的子代码:

enter image description here

不确定要提供的其他信息,因为这只是一个模糊的错误,似乎是在我更新到iOS 7.1 SDK时开始的。

1 个答案:

答案 0 :(得分:1)

这似乎是一个错误,可能只有SKShapeNodes。

我的解决方案是创建一个SKNode类别,并在我删除的任何节点都有子节点时调用此清理方法。

- (void)cleanUpChildrenAndRemove {
    for (SKNode *child in self.children) {
        [child cleanUpChildrenAndRemove];
    }
    [self removeFromParent];
}