任何人都可以在这里指出正确的方向。我希望在我的应用程序收到内存警告时响应(我想知道如何响应此通知)。另外,我可以用我的应用程序连接多少内存?
任何文章或书籍参考都会很棒。感谢。
答案 0 :(得分:7)
如果您的应用收到内存警告(例如在视图控制器的didReceiveMemoryWarning
方法中),则需要释放任何非关键数据。例如,您正在使用缓存的任何内容,或者可以重新生成的内容都应该被转储。
例如,如果您的应用程序处理某些数字并将结果存储在一个大数组中,如果您没有主动使用该数组,则应该将其释放。然后,再次需要时重新生成它。
这里有更多信息: Observing Low-Memory Warnings
答案 1 :(得分:4)
我非正式地听到当你的应用程序达到大约22 MB时会发出警告。 (包括任何分配的内存 - iPhone将所有内容保存在物理RAM中,不会分页到任何其他存储。)鉴于手机只有128 MB的总RAM,这似乎是合理的。
该限制不包括共享系统库使用的内存,例如Objective-C运行时。虽然我对此并不完全确定,但我认为WebKit的内存使用量并不包含在UIWebView组件中,因为我相信WebKit总是被加载(但同样,不是100%肯定)。
当您达到此限制时,最好的做法是免费重复从输入文件重新生成或重新读取的任何内容,例如视图,图像和缓存数据。