内存充满了视图和崩溃

时间:2012-03-05 11:53:51

标签: ipad memory-management view memory-leaks sdk

我的申请有问题。我有18个视图但是当你查看每个步骤消耗更多内存时。应用程序崩溃后。

while ([self.view.subviews count] > 0) { 
        [[self.view.subviews lastObject] removeFromSuperview]; 
    }

    [self presentViewController:[[proj_lletrac_14_ontroller alloc] init] animated:NO completion:nil];
    [proj_lletrac_14_Controller release];
    [proj_lletrac_13_Controller release];

此代码是一个小例子

我的英语很糟糕,我说西班牙语:)

由于

1 个答案:

答案 0 :(得分:0)

问题是你传入一个已分配的对象而不是释放它。你需要将它放在变量中,以便释放它:

proj_lletrac_14_ontroller *viewController = [[proj_lletract_14_ontroller alloc] init];
[self presentViewController:viewController animated:NO completion:nil];
[viewController release];

因此,在步骤中,您将实例分配给变量:

proj_lletrac_14_ontroller *viewController = [[proj_lletract_14_ontroller alloc] init];

将实例传递给presentViewController方法:

[self presentViewController:viewController animated:NO completion:nil];

现在您不必担心实例,因此您释放已分配的对象:

[viewController release];

简单的内存管理。

在传入函数时永远不要分配对象,除非你将它粘贴在自动释放池中:

[self presentViewController:[[[proj_lletrac_14_ontroller alloc] init] autorelease] animated:NO completion:nil];

但这是糟糕的内存管理实践。你应该释放你不知道的所有你不需要的东西。