2

modalViewController를 표시합니다. 모달 뷰 컨트롤러를 닫은 후 :iPhone : 모달 뷰 컨트롤러 메모리 누수

- (void)dismissModalViewControllerAnimated:(BOOL)animated 

. 뷰는 여전히 메모리에 있습니다. 어떻게하면 메모리를 사용하도록 무시할 수 있습니까?

감사합니다.

+0

retain count = 1 인 객체 만 릴리스 할 때 dealloc을 호출합니다. –

답변

0

모달보기 컨트롤러를 제시 할 때 해제해야합니다.

+0

물론. modalViewController를 표시하기 전에 먼저 UINavigationController와 UIViewController를 할당하고 UIViewController를 UINavigationController에 rootViewController로 추가 한 다음 나중에 modalViewController를 표시하고 UINavigationController와 UIViewController를 모두 릴리스합니다. 그 밖의 무엇을 하느냐? – burki

+0

코드에서 모두 해제해야합니다. 그들 중 하나를 보유하면 귀하의 컨트롤러가 유지됩니다. 전달한 다른 값과 누락하지 않은 값을 확인하십시오. –

0

동일한 문제가 있습니다. presentModalViewController를 호출하고 alloc을 해제 할 때까지는 ViewController 만 임시적으로 유지합니다. 하지만 DismissModalViewControllerAnimated 이후에는 ViewController의 dealloc을 얻지 못합니다. 나는의 ViewController에서 자체 버전을 추가하는 경우

, 그때는 이벤트 루프로 제어를 반환 한 후이 얻을 : "EXC_BAD_ACCESS"

프로그램 신호를 받았다. objc_msgSend

+0

retain count = 1 인 객체 만 릴리스 할 때 dealloc을 호출합니다. –

0

같은 문제가 있습니다. 나는 NavigationController를 모달로 가지고 있으며,이 NavigationController의 rootController로 간단한 ViewController 객체를 가지고있다. 드문 경우지만 Allocations를 사용하는 Instruments에 대해 내 앱을 실행할 때 modalController (이 경우 NavigationController)를 닫은 후에 NavigationController는 사라지지만 rootController는 메모리에 남아있어 메모리가 커지면서 커집니다. (참고 : 계측기의 누출은 누출을 나타내지 않고 시뮬레이터가 아닌 기기에서 실행 중입니다.)

+0

탐색 막대의 rootviewcontroller로보기 컨트롤러를 추가 한 후에보기 컨트롤러를 해제 하시겠습니까? 모든 IB 객체를 viewDidUnload에 nil로 설정합니다. 여전히 문제가 남아 있습니다. 우리가 당신의 코드를 보도록 허락 해주십시오. –

0

모달보기 컨트롤러를 표시 할 때 확실히 할당하므로 할당 할 때마다 규칙이 있으므로 modalviewcontroller에있는보기 컨트롤러를 해제하십시오.