iOS 在用内存警告打扰你之前做了很多事情,包括杀死后台应用程序。从 iOS 5 开始,iOS 甚至会尽可能少地用内存警告来惹恼你,这意味着只有在确实需要你摆脱正在使用内存但现在不需要的东西时,你才会得到一个(而且您可以在未来安全地重新创建,而无需花费数小时)。如果您的应用程序在没有先给您内存警告的情况下崩溃,则可能是您分配了太多内存,以至于系统在决定杀死您之前无法告诉您它的内存不足,原因是内存警告被安排在主线程的 runloop 上,直到您给 runloop 时间进行另一次迭代,您将不会收到警告。
此外,Apple 不希望您告诉用户存在内存问题。它是您的应用程序必须处理它,而不是用户!因此,如果在审查团队审查您的应用程序时出现内存警告,您的应用程序也会被拒绝(谣言说他们发送这些警告是为了测试您的应用程序对它们的反应)
Soo,总结一下:iOS 确实像你预期的那样工作,通过杀死它可以杀死的东西,甚至关闭其他系统守护进程,只有在发生这种情况之后,你才会被通知内存不足。响应这些警告的正确方法是尽可能多地释放内存,从将来可以轻松重新创建的大内容开始(例如,如果您的应用显示大量图片但一次并非全部可见,扔掉那些现在不可见的)。告诉用户是处理问题的错误方法,Apple 不喜欢这样,所以请尝试最终解决问题。