2013-03-13 43 views
1

我不知道有关didReceiveMemoryWarning的太多信息,但考虑到我在其他文章中阅读的内容以及在文档中查找的内容,我发现在iOS 5的情况下,任何不可见视图控制器将转储其视图,但在iOS 6的情况下文档(documentation说,默认实现“退出”,我不知道我应该怎么理解。工作原理didReceiveMemoryWarning iOS 6

我一直在做一些测试iOS模拟器模拟低内存警告,我欣赏(在iOS 5上)如果我在堆栈中的第二个视图中并且模拟低内存警告,则当前视图没有任何反应,但是如果我返回到之前的视图被释放,并且viewDidLoad被再次调用,但是在cas中e iOS 6以前的观点没有发布,我的意思是这个,这是我的问题:如果视图没有发布,那么didReceiveMemoryWarning在iOS 6上的后果是什么?我是否应该为其他任何事情担心,米不考虑?即使视图没有被释放,像类变量(例如NSMutableArray)可以被释放吗?

+0

我认为在这种情况下“退出”意味着函数“返回”给调用者,但这并不意味着他们调用[exit()](http://www.cplusplus.com/reference/cstdlib /出口/)。 – progrmr 2013-03-13 18:28:31

回答

1

您只有更多的控制views are no longer purged under low-memory conditions and so this method [viewDidUnload] is never calledDeprecated UIViewController Methods)。

如果视图的构建成本昂贵,但不像内存渴望,您可能不会释放它。据我所知,iOs在发生内存警告时不会释放任何东西,因此决定完全取决于您,请使用didReceiveMemoryWarning或其他通知技术(请参阅部分Observe Low-Memory Warnings)。

WWDC 2012会议236:iOS上的视图控制器的演变可能对您很有意思。

+0

这个答案开始非常好,但接下来呢。 – 1dayitwillmake 2013-07-06 03:37:34

+0

@ 1dayitwillmake答案有什么问题? – 2013-07-11 13:17:05

+0

......第一条评论也是如此。 – 2013-11-25 06:27:46