2010-05-11 53 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]; 
} 

release絕不會爲window,也不是nav

  1. 發佈應該被調用,因爲alloc被調用,對吧?
  2. 如果#1是正確的,那麼我需要在實例變量中存儲對其中每個參數的引用,以便在dealloc中釋放它們?

也許我錯了各地...

回答

4

是的,正常。

但是; UIWindow通常不會被釋放,根導航控制器也不會被釋放,因爲它有什麼意義。他們持續你的申請期限。

另外,得到一本新書;我們現在使用Interface Builder來處理這些東西。

+0

+1,謝謝。 Book說2009年,但他們後來到了Interface Builder。我不知道我是否相信。 – 2010-05-11 20:51:19