2010-02-11 8 views
1

클래스의 initialiser에 다음 코드를 고려하십시오메모리 관리

UIViewController* blankViewController=[[DisplayViewController alloc] 
        initWithNibName:@"Blank" bundle:nil]; 
self.nextView=blankViewController.view; 

nextView이 유지 사용하는 속성입니다. blankViewController이 릴리스되지 않았습니다. 공개 된 경우보기가 viewController에 대한 참조를 유지하는 것처럼 보이지 않으므로 충돌이 발생합니다. 보기에 대한 참조가 유지되는 한보기 제어기를 계속 붙이고 싶습니다. 이 메모리 누출을 수정하는 가장 좋은 방법은 무엇입니까?

답변

2

blankViewControllerself의 ivar로 저장하거나 (정적) 전역 변수로 만들어야합니다.

그런 다음 self이 할당 해제되면 [blankViewController release]을 호출합니다.

보기에서보기 컨트롤러를 가져 오는 다른 (문서화 된) 방법이 없기 때문에이 작업을 수행해야합니다.