2010-05-11 2 views
1

이 책간단한의 Obj-C 메모리 관리 질문

// On launch, create a basic window 
- (void)applicationDidFinishLaunching:(UIApplication *)application { 
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[HelloController alloc] init]]; 
[window addSubview:nav.view]; 
[window makeKeyAndVisible]; 
} 

에서 일부 샘플 코드에서이다 그러나 releasewindow 위해도 nav에 대한 호출되지 않습니다.

  1. alloc이 호출되었으므로 출시해야합니다. 맞습니까?
  2. # 1이 맞다면 dealloc에서 해제하기 위해 인스턴스 변수에 이들 각각에 대한 참조를 저장해야합니까?

는 아마도 내가 일반적으로,

답변

4

예 ... 모든 주위 틀렸다.

그러나; UIWindow는 일반적으로 릴리스되지 않으며 루트 탐색 컨트롤러도 아닙니다. 그들은 귀하의 신청 기간 동안 지속됩니다.

또한 새로운 책을 구입하십시오. 우리는이 물건에 Interface Builder를 사용합니다.

+0

+1 및 감사합니다. Book은 2009 년을 말합니다.하지만 Interface Builder에 "나중에"옵니다. 내가 확신하는지 모르겠다. –