为什么dealloc不叫一个全新的项目(xcode 3.1.4)?

我开始学习iPhone编程,这显然是一个非常简单的问题。 我在xcode 3.1.4工作。 现在,当我创build一个基于窗口的应用程序的新项目,并修改dealloc(在AppDelegate.m文件中),以便它实际上在控制台上打印语句时,我实际上看不到该语句。 那么,我的问题是为什么?

为了避免明显的答案,修改的dealloc是:

- (void)dealloc { NSLog(@"Dealloc is called"); [window release]; [super dealloc]; } 

这是不是很奇怪?

最初我在这里发表了类似的问题,但现在我知道真正的问题是我在这里描述的问题。 版主,随时删除我的另一个线程。 我很抱歉。

在应用程序结束之前,appDelegate不会被释放,此时在控制台上看到消息已经太迟了。

另外,对于任何新的项目,您都应该使用ARC,这样在很多情况下都不需要调用dealloc。

当这个dealloc被调用时,可能是NSLog不可用。 程序完成后,应用程序委托是您的项目中最后一次要释放的东西。

它没有被调用,因为你的应用程序可能正在运行。 而当它被称为你的应用程序可能已被终止。 我同意borrrden的观点,即appdelegate的dealloc函数是最后要调用的东西。 如果你想了解retai / release,alloc / dealloc,请尝试使用xcode 3.2.6,如果你想使用ARC,请尝试xcode 4.2和ios5。