SKScene在呈现新场景后徘徊在背景中

时间:2015-03-18 00:48:36

标签: objective-c xcode sprite-kit skscene

在我的应用程序中,我有三个不同的SKScene子类用于我的菜单,游戏和屏幕上的游戏。当玩家在游戏中遇到障碍物时,我会使用以下场景在场景中展示新游戏:

EndGame *endGame = [[EndGame alloc] initWithSize:[UIScreen mainScreen].bounds.size];
SKView *spriteView = (SKView *)self.view;
[spriteView presentScene:endGame];

但是,我的gameScene仍然在后台运行(我可以通过在update方法中打印一条消息来判断)。当我在场景中展示游戏时,如何确保释放gameScene的实例?

目前,当我在场景之间移动时,我的内存使用量会逐渐增加。

1 个答案:

答案 0 :(得分:0)

虽然你找到了答案的解决方案,但我有类似的东西。

我有一个navigationController,它显示了一个MainViewController,您可以从中转到GameViewController(使用SKScene)。在'游戏之后我会弹回MainViewController,但是,我的场景(在GameViewController中)仍然在后台运行。我通过在update()函数中打印TimeInterval来检查。

我最终做的是,在我的viewDidDisappear中,我做了一个

skView.presentScene(nil)

这删除了我的场景,并释放了它正在使用的任何内存。