【问题标题】:How it works didReceiveMemoryWarning for iOS 6iOS 6 的 didReceiveMemoryWarning 是如何工作的
【发布时间】:2013-03-13 18:11:38
【问题描述】:

我不太了解didReceiveMemoryWarning 的信息,但考虑到我在其他帖子中阅读的内容以及在文档中查找的内容,我发现在 iOS 5 的情况下,任何不可见的视图控制器都会转储其查看,但在 iOS 6 的情况下,文档(documentation 表示默认实现“退出”,我不知道我应该如何理解。

我一直在使用 iOS 模拟器进行一些测试来模拟低内存警告,我很感激(在 iOS 5 上),如果我在堆栈的第二个视图中并且我模拟了低内存警告,当前视图没有任何反应,但是如果我返回之前的视图已发布,并且 viewDidLoad 再次按我的预期调用,但是在 iOS 6 的情况下,之前的视图都没有发布,我的意思是这个,这是我的问题:如果没有发布视图,iOS 6 上didReceiveMemoryWarning 的后果是什么,我是否应该担心其他我没有考虑的事情?即使没有释放视图,类变量(例如 NSMutableArray)之类的东西也可以被释放?

【问题讨论】:

  • 我认为这种情况下的“退出”意味着函数“返回”给调用者,并不意味着他们调用exit()

标签: iphone ios ios6 didreceivememorywarning


【解决方案1】:

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

如果视图的构建成本很高但又不那么需要内存,那么您可能不会释放它。据我所知,iOs 在内存警告的情况下不会释放任何东西,这完全取决于你,使用didReceiveMemoryWarning 或其他通知技术(参见Observe Low-Memory Warnings 部分)。

WWDC 2012 Session 236:iOS 上视图控制器的演变可能对您来说很有趣。

【讨论】:

  • 这个答案开始很好,但后来它。
  • @1dayitwillmake 答案有什么问题?
  • ...第一条评论也是如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2012-01-15
  • 2011-06-24
  • 2011-05-29
相关资源
最近更新 更多