iOS 5是否以不同的方式处理低内存情况?

时间:2012-02-04 20:42:17

标签: iphone ios memory-management ios5 didreceivememorywarning

我只在iOS 5.0中遇到问题,在存在模态视图时收到的低内存警告有时会让我看到白屏 - 我相信这是因为我的标签栏控制器释放了它的所有视图。

相同的方案不会导致iOS 4.0出现问题。我能想到两种解释:

  1. iOS 5使用更多内存,为应用程序留下更少
  2. iOS 5以不同的方式处理低内存情况
  3. 在5.0之前的版本中,我曾经能够通过释放一些额外的内存来响应低内存警告。在5.0中,它似乎是我第一次得到低内存警告,我的模态视图控制器下的所有内容都清除了它的视图。跟踪确认,在发出内存警告后,模态视图控制器下的任何控制器都将其view字段设置为nil

    有人能指出我关于iOS 5如何处理低内存情况与早期版本的信息(理想情况下来自Apple)?我希望能够在必要时释放一些内存,而不是清除所有意见。

2 个答案:

答案 0 :(得分:0)

在回答上一段中的问题时,您正在寻找WWDC 2011中的深度iOS效果视频。它讨论了iOS 5中从13或14分钟开始的低内存处理,并讨论了特别是在16分钟左右开始的低内存警告消息的更改。

我不确定它会帮助你弄清楚你的应用程序出了什么问题。

答案 1 :(得分:0)

我也有同样的问题并修复了它。问题是我们通过xib连接的出口在viewDidUnload方法中设置为nil。发生内存警告时,将在当前不可见的所有视图上调用此方法。当我们回到那些视图时,会再次调用它们的viewDidLoad方法。解决这个问题的唯一方法是从viewDIdUnload中删除setNil方法到dealloc方法,一切都会正常工作。