0

我有兩個uiviewcontroller,我釋放dealloc中的所有資源,並將它們設置爲零在didunload但仍然當我遇到兩個viewcontrollers內存不斷增加。內存不斷增加,當打開一個相同的uiviewcontroller再次在iphone

我保持使用的內存從this post

軌道和釋放內存任何人都可以說明爲什麼這是怎麼回事?

這是第二個視圖 - 控制:

- (void)viewDidUnload { 
    adView.delegate = nil;  
    [self setCountDown:nil];  
    [self setUploadPhoto:nil]; 
    [self setBackclicked:nil]; 
    [self setInfo:nil]; 
    [self setCloseButton:nil]; 
    [self setHow2usebg:nil]; 
    [self setHow2useInstruction:nil]; 
    [self setHow2useicon:nil];  
    [self setVc1:nil]; 
    [self setVc:nil]; 
    adView = nil; 
    [super viewDidUnload]; 
} 

-(void)dealloc 
{ 

    [adView release]; 
    [closeButton release]; 
    [how2usebg release]; 
    [how2useInstruction release]; 
    [how2useicon release]; 
    [videoRecorder1 release]; 
    [uploadPhoto release]; 
    [countDown release]; 
    [backclicked release]; 
    [info release]; 
    [vc release]; 
    [talkingImage release]; 
    [backgroundImage release]; 
    [super dealloc]; 
} 
+1

您是否已發佈uiviewcontroller對象?或更好,如果你可以張貼代碼.. – kamleshwar

+0

設置一個對象爲零不會釋放一個對象..張貼一些代碼以獲得更多清晰度 –

+0

'adView'不會在將其設置爲'viewDidUnload'中的'nil'之前釋放,導致它被泄漏。另外,我沒有看到'vc1'在'dealloc'中被釋放 – user102008

回答

1

我覺得你是在另一個視圖控制器..像下面的行中添加視圖 - 控制..

[self.view addSubView:yoursecondview]; 

創建的appdelegate對象,然後添加窗口,而不是self.view

AppDelegate *object=[[UIApplication SharedApplication] delegate]; 
[self.view removeFromSuperview]; 
[object.window addSubView:yoursecondview]; 
相關問題