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

Iphone iOS 5是否以不同的方式处理内存不足的情况?,iphone,ios,memory-management,ios5,didreceivememorywarning,Iphone,Ios,Memory Management,Ios5,Didreceivememorywarning,我只在iOS 5.0中遇到了一个问题,在模式视图出现时收到的内存不足警告有时会给我留下一个白色屏幕——我相信这是因为我的选项卡栏控制器释放了所有视图 同样的场景不会在iOS 4.0中造成问题。我可以想到两种解释: iOS 5使用更多的RAM,为应用程序留下的内存更少 iOS 5以不同的方式处理内存不足的情况 在5.0之前的版本中,我曾经能够通过释放一些额外的内存来响应内存不足警告。在5.0中,似乎我第一次收到内存不足警告时,模态视图控制器下的所有内容都会清除其视图。跟踪确认,在出现内存警告后,模

我只在iOS 5.0中遇到了一个问题,在模式视图出现时收到的内存不足警告有时会给我留下一个白色屏幕——我相信这是因为我的选项卡栏控制器释放了所有视图


同样的场景不会在iOS 4.0中造成问题。我可以想到两种解释:

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


    有人能给我指一下iOS5与早期版本相比如何处理内存不足的信息吗(最好是苹果的)?我希望能够在必要时释放一些内存,而不是清除所有视图。

    在回答您上一段中的问题时,您正在从中查找iOS性能深入视频。它讨论了在iOS 5中从大约13或14分钟开始的内存不足处理,并讨论了对内存不足警告消息的更改,特别是从大约16分钟开始的更改


    我不确定它是否能帮你找出你的应用程序出了什么问题。

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

    我不知道是否确实如此,但您是否实现了-(void)viewDidLoad以便在那里加载或设置所有视图?你真的应该使用viewDidLoad和viewDidUnload来设置和发布视图。“同样的场景在iOS 5.0中不会造成问题。”你是说iOS 4.0吗?@Till,EmilioPelaez,我认为这个问题比我的视图构建糟糕。我的选项卡栏控制器有时会从屏幕上完全删除,有时会将导航控制器重置回其根目录(可能是因为它们已从选项卡栏控制器中删除并重新构建)。因此,仅仅重建视图是不够的,因为卸载导航控制器和选项卡控制器后,我最终会处于“全新”状态。你是说“使用仪器优化iOS性能和电源”吗?我没有看到一个专门命名为“iOS性能深入”的,嗯。我在网站上也找不到。在iTunes U中,它是会话318。