什么时候实际调用didReceiveMemoryWarning

5 memory iphone didreceivememorywarning ios ios6

我以前从未亲眼见过didReceiveMemoryWarning.是否有一个已知的内存使用阈值被调用?

atx*_*txe 7

当系统内存不足时调用它,然后你需要清除你的内存UIViewController.

您可以在模拟器中模拟内存警告:Hardware > Simulate Memory Warning并查看会发生什么.

如果您支持iOS6的早期版本,请务必注意Apple的文档中的以下内容:

在iOS 6之前,当发生内存不足警告时,如果UIViewController该类知道它可以重新加载或稍后再次重新创建它们,则 该类会清除其视图.如果发生这种情况,它还会调用 viewWillUnloadviewDidUnload方法,让代码有机会放弃与视图层次结构相关联的任何对象的所有权,包括从nib文件加载的对象,在viewDidLoad方法中创建的对象以及在运行时延迟创建的对象并添加到视图层次结构中.在iOS 6上,视图永远不会被清除,并且永远不会调用这些方法.如果视图控制器需要在内存不足时执行特定任务,则应覆盖该 didReceiveMemoryWarning方法.

关于阈值,我尽量不超过12MB的内存.