Ios 内存管理问题(释放UIVIewCotroller)

Ios 内存管理问题(释放UIVIewCotroller),ios,memory-management,uiview,memory-leaks,uiviewcontroller,Ios,Memory Management,Uiview,Memory Leaks,Uiviewcontroller,我为iPad开发了这个游戏(从拼图中合成图像)。在我的菜单中,我选择难度等级(简单、中等或硬)。选择后,将显示主运动场。 这里是我创造主要竞争环境的地方: - (void)simpleDiffButtonClicked:(id)sender { UIButton *button = sender; if (simpleDiffButton == button) { UIView *mySuperView = self.view.superview;

我为iPad开发了这个游戏(从拼图中合成图像)。在我的菜单中,我选择难度等级(简单、中等或硬)。选择后,将显示主运动场。 这里是我创造主要竞争环境的地方:

- (void)simpleDiffButtonClicked:(id)sender
{
    UIButton *button = sender;
    if (simpleDiffButton == button) {
        UIView *mySuperView = self.view.superview;

        mainGame = [[MainGame alloc] initWithMode:1 andImage:nil]; //mainGame variable is declared in header file like: MainGame *mainGame;
        mainGame.view.frame = CGRectMake(0, 0, 1024, 768);
        [mySuperView addSubview: mainGame.view];
}
}

在这个游戏场出现之后(有很多子层添加到self.view.layer中),我可以与它交互。当我想退出时,我点击“后退”按钮。(这里我想释放我的viewcontroller)

点击“后退”按钮后,一切正常。而我可以再次选择困难的水平。A选择一个级别,然后再次单击“后退”按钮,此时应用程序崩溃(EXC_BAD_ACCESS)。 据我所知,“self.view.layer.sublayers=nil”导致异常。 没有它一切都好。但是内存正在泄漏。玩了几分钟后,应用程序崩溃(内存警告2)。 我大约要一个星期才能解决这个问题。我不知道如何释放我的viewcontroller(或者我需要释放控制器中的所有子层?)

求求你,有人帮帮我。
提前感谢。

尝试打开NSZombieEnabled并在其崩溃时检查调试器和控制台,它可以提供有关问题的更多信息

注:NSZombieEnabled:(您可能想尝试使用.gdbinit)

p.p.S.:
顺便说一句,在“mainGame=[[mainGame alloc]initW…”这一行中可能还有一些其他问题——调用[mainGame release]的地方?(应该调用尽可能多的simpleDiffButtonClick,它将mainGame的新实例分配给mainGame变量(每次))

谢谢你的回复,navX!我将阅读有关NSZombieEnabled的内容(谢谢)。释放mainGame变量怎么样?如果我这样做
[mainGame.view release];
,应用程序将崩溃(
EXC\u BAD\u ACCESS
)。也许有另一种方式来显示视图(不是
addSubview:
)?我已经阅读了presentmodalview方法,但它对我不起作用,我也不需要它。
- (void)backToMenuButtonClicked:(id)sender
{
    UIButton *button = sender;
    if (nextImageClick == YES) {
        return;
    }   
    if (backToMenuButton == button) {
     self.view.layer.sublayers = nil;  //here's an exception
    [self.view removeFromSuperview];

    }
}