iPhone开发 - iPhone应用程序的内存限制

5

有人能为我指明方向吗?当我的应用程序接收到内存警告时,我想做出响应(我想知道如何对此通知做出响应)。 另外,我的应用程序可以使用多少内存?

任何文章或书籍参考都很好。谢谢。

2个回答

7
如果您的应用程序收到内存警告(例如在视图控制器的didReceiveMemoryWarning方法中),则需要释放任何非关键数据。例如,任何缓存的数据或可以重新生成的数据都应该被丢弃。
例如,如果您的应用程序计算一些数字并将结果存储在一个大数组中,如果您没有在积极使用该数组,则应该释放它。然后,在您再次需要它时重新生成它。
详细信息请参见此处:观察低内存警告

链接已移动... https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ApplicationEnvironment/chapter_3_section_5.html - estobbart

4

我听说当你的应用程序达到约22 MB时,就会发出警告。(任何分配的内存都包括在内——iPhone将所有内容保存在物理RAM中,不会分页到任何其他存储器。)考虑到手机只有128 MB的总RAM,这似乎是可信的。

该限制不包括共享系统库(如Objective-C运行时)使用的内存。而且虽然我不是完全确定,但我认为WebKit的内存使用量不包括UIWebView组件的使用,因为我相信WebKit总是被加载的(但再次强调,我不能100%确定)。

当您达到此限制时,最好的做法是释放任何您可以轻松重新生成或从输入文件中重新读取的内容,例如视图、图像和缓存数据。


根据我的经验,这似乎是正确的。不过我不清楚Safari是否使用自己的内存。 - schwa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接