简单的Obj-C内存管理问题

时间:2010-05-11 20:41:59

标签: objective-c memory-management

这是来自书中的一些示例代码

// 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中释放它们?
  3. 也许我周围都错了......

1 个答案:

答案 0 :(得分:4)

是的,通常。

然而; UIWindow通常不会发布,也不是根导航控制器,因为,重点是什么。它们会在您申请期间持续。

另外,买一本新书;我们现在使用Interface Builder来处理这个问题。