viewController,显示方法调用?

时间:2010-01-15 17:39:20

标签: objective-c cocoa-touch

我只想弄清楚viewController是如何在一个简单的iPhone应用程序中工作的。我的问题是我试图看看下面的函数何时被调用,我已经将NSLog命令放在那里打印到控制台,但我在运行或退出我的应用程序时看不到以下任何打印,他们得到了叫,我应该看到什么吗?

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
    NSLog(@"-1-");
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    NSLog(@"-2-");
    self.statusText = nil;
}

- (void)dealloc {
    NSLog(@"-3-");
    [statusText release];
    [super dealloc];
}

EDIT_001:

-1- didReceiveMemoryWarning(由Kenny指出)通过硬件工作>模拟内存警告

-2-我明白为什么这个现在不起作用,谢谢。

-3- dealloc,我正在使用底部的白色方块退出正在运行的应用程序,这是否完全退出,我应该从dealloc看到NSLog?

加里

2 个答案:

答案 0 :(得分:1)

回答你的问题:

  • (void)didReceiveMemoryWarning在运行一个简单的应用程序时不会触发。 您可以通过加载一堆保留的对象(如图像)来测试它。

  • (void)viewDidUnload:如评论中所述,只有在您的主视图中附加了另一个视图时才会触发。

  • (void)dealloc:嗯,在这里你应该看到一些东西。不知道为什么。你检查了XCode控制台吗?!

答案 1 :(得分:1)

- (void)didReceiveMemoryWarning
当应用程序收到内存警告(您的应用程序内存不足)时,

将被发送到视图控制器。您可以通过在模拟器中选择硬件 - >模拟内存警告来模拟它。

- (void)viewDidUnload
当控制器的视图从内存中释放时,将调用

。当视图控制器需要释放其视图时,在内存不足的情况下调用它。

- (void)dealloc
释放对象后发送

以释放它占用的内存。

我希望这会有所帮助。