2010-08-01 60 views
2

我有一个应用程序,堆叠相当多的意见,在彼此顶部。iPhone内存警告级别= 2

在某些时候,我收到一个内存警告级别2(这是预期的)。

事情是,当我运行仪器时,我没有任何内存泄漏,应用程序占用了一些像9-10MBs ...这不是很多,我会说?

问题是:应用程序能消耗多少内存,又如iPhone有多少内存?

我知道我可以响应receivedMemoryWarning并释放一些内存 - 但这意味着我不得不摆脱一些视图,这不是我正在寻找的解决方案。

该应用程序并没有到目前为止崩溃 - 但我担心,它可能对其他用户的iPhone手机死机...

回答

1

您的应用程序不会崩溃任何人的iPhone。该系统将杀死你的应用程序。无论如何,3GS据传有256Mb,而iPhone 4有512Mb。它仍然无关紧要,因为当您收到警告时,您最好遵守。 尝试减少您拥有的视图数量或卸载用户看不到的视图。

+0

感谢您的澄清! 我不能以某种方式“隐藏”其他视图吗?他们有时有某些国家需要持续。如果我卸载视图,它也会失去它的状态...... – Urs 2010-08-01 16:21:49

+0

尝试使用'isHidden'属性,看看它是否有帮助。 – SteamTrout 2010-08-01 17:24:34

+1

这就是为什么从显示对象中分离数据对象总是更好的原因。 尝试按照数据与视图分离的方式来规划应用程序,以便在需要时将它们丢弃并在稍后再次创建它们。 您也可以查看NSCoding来保存对象的状态。 – Bastian 2010-09-03 22:37:50

2

应用程序可以使用30-40 MB的真实内存或更大,那么这将不会有问题。当你得到一个内存警告级别1时,直到那时没有问题,但是如果你得到内存警告级别2,那么应用程序可能会或将会在一段时间后崩溃。

解决方法是,当您获取内存警告级别2时,在您的委托方法中,释放一些当前未使用的内存。

相关问题