2012-03-05 76 views
0

我的应用程序有问题。我有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]; 

此代码是一个小例子

我的英语不好,我说西班牙语:)

感谢

回答

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]; 

但是这是不好的内存管理实践。你应该释放你知道的,你不需要的一切。