在模拟内存警告期间销毁视图

时间:2013-07-23 10:41:53

标签: ios objective-c

我正在读一本书,其中有一个带有两个标签的UITabBarController。一个时间标签和另一个催眠标签。 时间标签显示TimeViewController 并且催眠标签显示HypnosisViewController

这是TimeViewController

的实施
- (void)viewDidUnload
{
    [super viewDidUnload];
    NSLog(@"Unloading TimeViewController's subviews");
    timeLabel = nil;
}

这本书说如果我在 Hypnosis 标签上模拟记忆警告, 我应该看到上面输入的日志消息。但是,这不会发生。 有谁知道为什么?我正在使用iOS 6.1模拟器和最新版本 Xcode(即使这本书是关于iOS 5的)。

2 个答案:

答案 0 :(得分:3)

在新版本中已弃用,您应该使用;

didReceiveMemoryWarning

来自Apple:

  

在iOS 6中,现在不推荐使用UIViewController的viewWillUnload和viewDidUnload方法。如果您使用这些方法来释放数据,请改用didReceiveMemoryWarning方法。如果未使用此方法,也可以使用此方法释放对视图控制器视图的引用。在执行此操作之前,您需要测试视图不在窗口中。

答案 1 :(得分:0)

回答评论中的新问题:显然这也发生了变化。收到低内存警告时,屏幕视图不再自动销毁。来自http://forums.bignerdranch.com/viewtopic.php?f=219&t=5111#p13862