3

我正在读一本书,其中有一个带有两个选项卡的 UITabBarController。一个时间选项卡和另一个催眠选项卡。时间选项卡显示一个TimeViewController催眠选项卡显示一个HypnosisViewController

这是来自TimeViewController

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

这本书说,如果我在“催眠”选项卡上模拟内存警告,我应该会看到我在上面输入的日志消息。但是,这不会发生。有谁知道为什么?我正在使用 iOS 6.1 模拟器和最新的 Xcode(即使这本书是关于 iOS 5 的)。

4

2 回答 2

3

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

didReceiveMemoryWarning

来自苹果:

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

于 2013-07-23T10:43:23.293 回答
0

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

于 2013-12-02T02:09:33.677 回答