【发布时间】:2015-03-18 00:48:36
【问题描述】:
在我的应用程序中,我有 3 个不同的 SKScene 子类用于我的菜单、游戏和游戏画面。当玩家在游戏中遇到障碍物时,我会使用以下方式呈现一个新的游戏结束场景:
EndGame *endGame = [[EndGame alloc] initWithSize:[UIScreen mainScreen].bounds.size];
SKView *spriteView = (SKView *)self.view;
[spriteView presentScene:endGame];
但是,我的 gameScene 仍在后台运行(我可以通过在 update 方法中打印一条消息来判断)。当我呈现游戏结束场景时,如何确保释放 gameScene 的实例?
目前,当我在场景之间移动时,我的内存使用量会缓慢增加。
【问题讨论】:
-
您是否将场景保留在某处作为强大的属性?
-
我不知道那是什么意思,所以可能不是。
-
哦,不,我从来没有这样做过。
-
根据您发布的内容,它应该可以工作..您可能正在做其他事情。为什么不在一个精简的项目上尝试一下,看看是否得到相同的结果?
-
在尝试了一个精简的项目后,我发现了问题。当我从视图中移动时,更新方法确实停止了。当我之前说我使用的是更新方法时,实际上是在使用自定义计时器来运行我的物理。我假设当我从视图中移动时,这个计时器会自动失效,但由于某种原因,它一直在后台运行。我所要做的就是在从视图中移动之前使计时器无效。谢谢!
标签: objective-c xcode sprite-kit skscene