0

나는 두 개의 uiviewcontroller가 있고 dealloc의 모든 리소스를 해제하고 didunload에서 nil로 설정하지만 여전히 두 개의 viewcontrollers를 가로 질러 왔을 때 메모리가 계속 증가한다 .메모리가 계속 증가 할 때 iphone에서 동일한 uiviewcontroller가 다시 열린다

나는 이런 일이 왜 누군가가 제안 할 수 this post

에서 사용하는 메모리의 트랙과 여유 메모리를 유지하고

?

이 두 번째의 ViewController입니다 :

- (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

객체를 nil로 설정하면 객체가 해제되지 않는다. 더 명확하게하기 위해 코드를 게시한다. –

+0

'adView'가'viewDidUnload'에서'nil'으로 설정되기 전에 해제되지 않습니다. 누설 될 수있다. 또한, 나는'dealloc'에서'vc1'을 공개하지 않습니다. – user102008

답변

1

내가 u는 아래 라인 같은 다른의 ViewController ..시의 ViewController를 추가 할 생각 ..

[self.view addSubView:yoursecondview]; 

은 AppDelegate에 객체를 생성 한 다음 추가 윈도우 대신 self.view

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