2012-07-24 15 views
0

은 내가 전역 개체를 선언 YViewController에서 단추를 클릭하면 전화가 걸립니다.메모리 관리, 이상한 행동

[self methodTwo]; 

방법은이 작업을 수행 : 백 버튼 내가 다시 YViewController로 이동 [self methodOne];를 호출하고 XViewController에 도청

-(void)methodTwo 
{ 
    XViewController * xViewController = [[XViewController alloc] initWithImage:myImage]; 
    self.window.rootViewController=xViewController; 
} 

합니다.

ARC를 사용하는 동안 xViewController 개체를 플러시/릴리스 할 수 없다는 문제가 있습니다. 또한 악기를 점검 할 때 과 YViewController 사이에서 앞뒤로 탭할 때 XViewController의 메모리가 계속 증가합니다.

어떻게 이러한 유형의 상황에서 ARC로 메모리를 관리 할 수 ​​있습니까?

+0

왜 네비게이션 용 내비게이션 컨트롤러를 사용하지 않습니까? –

+0

안녕하세요 Vaibhav, XViewController 실제로 제 3 자 라이브러리 및 해당 이미 탐색 컨트롤러에서. 그게 이유야. – Ganesh

+0

당신은 네비게이션 컨트롤러를 시도해야합니다, 그 라인 코드의 몇 가지 작동하게하십시오. 플러스 u는 자사의 타사 도구를 언급 한 이후 XViewController의 메모리 관리가 좋지 않을 수 있습니다 – WaaleedKhan

답변

1

XViewController의 소스가 열려 있으면 탐색 기능을 사용하도록 조정했을 것입니다. 모든 방법 ..

좋아, 기본적으로 당신은 ViewController의 새로운 객체를 만들 때마다 메모리 더미가 생성됩니다.

클래스 변수로 'XViewController * xViewController'및 'YViewController * yViewController'가 있어야하며 메소드는 이와 같은 일부 항목이어야합니다.

개체가 있는지 확인하고 개체가 있으면 다시 할당하지 마십시오.

-(void)methodTwo 
{ 
if(xViewController == nil) 
{ 
    xViewController = [[XViewController alloc] initWithImage:myImage]; 
} 
    self.window.rootViewController=xViewController; 

}