我再次陷入了游戏的终止问题,这次是因为内存溢出,但是当我重播关卡时,按照以下步骤:
步骤1:有一个菜单按钮,在点击哪个菜单弹出窗口打开时,这是通过push scene
实现的,该按钮推动前一个场景的菜单类
第二步:在菜单弹出窗口中,有三个按钮:
1.从以前的状态恢复游戏的游戏,这是通过popping up the scene
实现的,
2.replay level,
3.回到家,
最后两个是通过替换场景来实现的,这导致严重的内存泄漏,因为前一个类的dealloc没有被调用,所以,在分配中它显示内存增加约10-20mb,并没有减少。这可能导致问题的终止。
如何克服这个问题?我很难坚持下去。
答案 0 :(得分:0)
听起来你没有从你的场景中释放一些东西。仅当对象的保留计数为零时才调用Dealloc。查看代码并确保在完成后正确释放每个对象。
XCode 4中的Analyze工具(默认为Cmd + Shift + B)应该可以让您清楚地了解漏洞情况。
答案 1 :(得分:0)
我做了什么来解决这个问题是一个棘手的解决方案:
以下是步骤:
第1步:制作全局变量(flag)
第2步:在该全局变量中存储操作,以便重放或返回主页
第3步:弹出推送的场景(已释放推送场景的内存)
第4步:检查日程选择器中的标志是什么(重新播放,或返回主页)
步骤5:替换询问的场景(释放当前场景的记忆)
这就是我实现它的方式,对此的任何建议都将受到高度赞赏。