2012-10-30 3 views

답변

4

혼란 스러워요 :

[view removeFromSuperview]; 

viewDidUnload가있다 뷰를 언로드하는 효과로 불리는 메소드. 뷰를 언로드하지 않습니다.

나는 지금 당신이 다른 것을 의미 할 수도 있다는 것을 깨닫습니다 ... 아마도 귀하의 질문은 viewDidUnload이 iOS6에서 더 이상 호출되지 않으며 메모리 경고를 받았을 때 어떻게 메모리를 복구하는지 궁금 할 것입니다.

이 경우에는 viewDidUnload에서 이전에 수행 한 작업이 didReceiveMemoryWarning에서만 가능하다고 생각합니다.

+0

나는 self.view = nil을 사용합니까? 차이점은 무엇입니까? – Fabio

+2

'self.view = nil'은 반드시보기를 언로드하지 않습니다; 그것은 메모리 관리와 관련이 있습니다. 뷰 콘트롤러를 가지고 있고 그 뷰를 다른 뷰 (예를 들어, 루트 뷰인'UIWindow')에 추가하면, 두 개의 포인터가 있습니다 :'self.view' (뷰 컨트롤러의 프로퍼티)와 슈퍼 뷰 게다가. 따라서 두 포인터가 더 이상 뷰를 참조하지 않을 때만 뷰가 언로드됩니다. 나를 위해, "언로 드는"superview에서 제거와 관련이있다; 포인터를 nil로 설정하여 "해제"합니다. – sergio

+0

감사합니다. 이제 알겠습니다. – Fabio

관련 문제