didReceiveMemoryWarning并释放全局资源

时间:2014-06-22 04:18:32

标签: ios memory-management

如果在我的应用程序中,我有非关键数据,那就是"全球"对应用程序而不是特定于任何特定视图控制器,是否有关于应该释放此类数据的指南?

特别是:我可以假设在内存不足的情况下,所有视图控制器都会收到didReceiveMemoryWarning事件 - 或者至少是应用程序"初始"视图控制器会做 - 因此只需将释放放在一次位置?或者我是否需要将它放在所有didReceiveMemoryWarning方法中,因为基本上任何(但不一定是全部)视图控制器都是如此。可以调用didReceiveMemoryWarning方法吗?

1 个答案:

答案 0 :(得分:2)

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

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