2012-03-05 74 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]; 

但是這是不好的內存管理實踐。你應該釋放你知道的,你不需要的一切。