applicationDidReceiveMemoryWarning,didReceiveMemoryWarning之间有什么区别?

raa*_*aaz 7 cocoa-touch memory-management ios

applicationDidReceiveMemoryWarning和之间有什么区别didReceiveMemoryWarning?处理这些警告的最佳方法是什么?

Mug*_*nth 11

您应该在所有视图上使用"延迟加载"数据.例如,如果要在表视图上显示数据列表,则应在视图控制器收到didReceiveMemoryWarning数据并将数据指针设置为nil 时释放数据.

大多数Apple示例代码都强调这种延迟加载技术.

applicationDidReceiveMemoryWarning是发送到AppDelegate的类似消息.您应该发布存储在AppDelegate中的不需要的全局数据.

一个典型的例子是Safari.在Safari中打开2-3个标签(在iPhone模拟器上).让所有标签加载网页内容.尝试在不同标签之间切换.您应该注意到内容仍然存在且未刷新.现在从菜单中关闭"模拟内存警告".现在,当您切换到其他选项卡时,Safari将再次获取内容.在内部发生的是,URL被记住,但整个网页内容在didReceiveMemoryWarning方法中被释放.

您还应该在应用中实现类似的机制.