【问题标题】:didReceiveMemoryWarning and deallocating global resourcesdidReceiveMemoryWarning 和释放全局资源
【发布时间】:2014-08-12 10:33:41
【问题描述】:

如果在我的应用程序中,我有非关键数据,对应用程序来说是“全局”的,而不是特定于任何特定视图控制器的,是否有任何关于应该在何处释放这些数据的指南?

特别是:我可以假设在内存不足的情况下,所有视图控制器都会收到 didReceiveMemoryWarning 事件——或者至少,应用程序的“初始”视图控制器会这样做——因此只需将解除分配放在一个地方吗?还是我需要把它放在所有的 didReceiveMemoryWarning 方法中,因为基本上可以调用视图控制器的任何(但不一定是所有)方法的 didReceiveMemoryWarning?

【问题讨论】:

    标签: ios memory-management


    【解决方案1】:

    当前窗口层次结构中的所有视图控制器都将收到自动内存警告消息。那些不会,但您可以使用UIApplicationDidReceiveMemoryWarningNotification 轻松注册通知处理程序。

    也就是说,听起来您有一个单例模型对象,您只想在内存不足时释放它。您可以在单例类中注册该通知,但更正确的设计模式是 ViewController 拥有模型(因此,它不能是全局单例),然后 ViewController 将负责告诉模拟何时释放资源。

    【讨论】:

      猜你喜欢
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多