2010-05-11 49 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