【发布时间】:2014-12-19 00:46:11
【问题描述】:
我是使用 SpriteKit 进行游戏开发的新手,到目前为止一切正常,但不能真正了解内存管理部分。
我创建了第一个 UIViewController 来充当关卡选择器,第二个 UIViewController 在其中呈现游戏的 SKScene。当我从 SKScene 返回到关卡选择器并且没有释放任何内存时,就会出现问题。
在游戏 SKScene 中,当用户按下后退按钮转到关卡选择器时,我会发布一条通知,告诉第二个 UIViewController 执行转场。
//SKScene
[self removeAllActions];
[self removeAllChildren];
[self removeFromParent];
[[NSNotificationCenter defaultCenter]postNotificationName:@"toLevelSelector" object:nil userInfo:nil];
//Second UIViewController
- (void)toLevel:(NSNotification *)notif
{
[self performSegueWithIdentifier:@"toLevelSelector" sender:self];
}
您能否帮助我更好地了解 skview 或 skscene 应该在何时何地从内存中释放?
【问题讨论】:
-
您能解释一下您是如何确定该场景未发布的吗?两个视图控制器是否创建不同的 SKView 实例(不推荐)?
标签: memory uiviewcontroller sprite-kit skscene skview