applicationDidReceiveMemoryWarning
和 didReceiveMemoryWarning
有什么区别?处理这些警告的最佳方式是什么?
最佳答案
您应该在所有 View 上使用“延迟加载”数据。
例如,如果您在 TableView 上显示数据列表,您应该在 View Controller 收到 didReceiveMemoryWarning
并将数据指针设置为 nil 时释放数据。
大多数 Apple 示例代码都强调了这种延迟加载技术。
applicationDidReceiveMemoryWarning
是发送到您的 AppDelegate 的类似消息。您应该释放存储在 AppDelegate 中的不需要的全局数据。
一个典型的例子是 Safari。在 Safari 中打开 2-3 个标签页(在 iPhone 模拟器上)。让所有的标签加载网页内容。尝试在不同的选项卡之间切换。您应该注意到内容保留在那里并且没有被刷新。现在从菜单中,关闭“模拟内存警告”。现在,当您切换到不同的选项卡时,Safari 会再次获取内容。在内部发生的事情是,URL 被记住,但是整个网页内容在 didReceiveMemoryWarning
方法中被释放。
您还应该在您的应用中实现类似的机制。
关于ios - applicationDidReceiveMemoryWarning 和 didReceiveMemoryWarning 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2302200/