2010-12-14 16 views
1

我看过WWDC 2010关于采用多任务处理的谈话,并且我已经开始启用我们的应用程序,但是我有关于发布不可见视图的问题。iOS多任务处理:系统进入后台后执行的缩减

根据演讲(会话105 - 在iPhone OS上采用多任务,第1部分 - 00:34:50),声明系统在进入后台时会发布“不可见的UIViewController视图”。然而,在我的测试中(在模拟器中),我没有看到这种情况发生。

-viewDidUnload方法没有被调用,并且在进入前景并查看先前隐藏的VC之后,-loadView方法也没有被调用。所以,我的UITabBarController中隐藏的VC视图根本没有被释放,与他们在演讲中所说的相反。有任何想法吗?

在“Moving to the Background”文档中没有提到这一点,只在谈话中提到。

任何澄清将不胜感激。

回答

1

您是否尝试过模拟内存警告,而您的应用程序在后台?我相信只有其他应用程序开始请求内存时才会发布视图。如果内存消耗保持不变,则不会发布视图,以便您可以更快地切换回来。

+0

有趣!在后台触发内存警告会导致在应用程序重新进入前台时调用“-viewDidUnload”。所以我唯一的问题是,在开始查看终止应用程序之前,系统是否会触发这些警告(在内存不足的情况下)?这些不需要的视图正在占用内存,并计入iOS将看到的“脏大小”度量。 – 2010-12-14 21:04:23

+0

是的,警告发生在应用程序终止之前。我相信至少有两个不同的级别,你会得到通知。我认为三个总水平。虽然目前我找不到解释它的文档。 – Mike 2010-12-14 22:38:25