PresentScene内存:removeAllChildren是否会传播?

时间:2014-12-12 02:37:17

标签: ios memory-management swift sprite-kit skscene

我有一个菜单场景和游戏场景的简单游戏。当游戏场景结束时,它会回到菜单场景,然后回到游戏场景等等。

所有过渡均由self.view?.presentScene(Scene(size: self.view!.bounds.size))处理。

我还在MenuScene和GameScene中添加了这段代码:

override func willMoveFromView(view: SKView) {
    self.removeAllActions()
    self.removeAllChildren()
}

然而,使用分析工具"分配"和"泄漏",我意识到每个presentScene之后内存消耗不断增长(只有一点点)。没有"泄漏"检测

removeAllChildren是否会传播到节点内的所有节点?或者我应该手动清除儿童中的所有儿童吗?

注意:我使用的是XCode 6.1.1,iPhone模拟器iOS 8.1

Memory keeps increasing in the graph

1 个答案:

答案 0 :(得分:0)

使用函数deinit记录一些println()并查看是否确实是deinit,我发现MenuScene已正确取消初始化但不是GameScene。 我不得不申请

self.removeAllActions()
self.removeAllChildren()

到一个主场景节点的节点。