我有一个菜单场景和游戏场景的简单游戏。当游戏场景结束时,它会回到菜单场景,然后回到游戏场景等等。
所有过渡均由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
答案 0 :(得分:0)
使用函数deinit
记录一些println()并查看是否确实是deinit,我发现MenuScene已正确取消初始化但不是GameScene。
我不得不申请
self.removeAllActions()
self.removeAllChildren()
到一个主场景节点的节点。