如何显示iPhone可用内存?如何释放iPhone内存?

3

如何在UILabel中显示iPhone的可用内存?

另外我想问一下,如何使用iPhone SDK释放内存?

顺便提一下,我正在使用带有xcode 3.2.1(Mac OS X Snow Leopard)的iPhone SDK 3.1.2。

3个回答

5
SDK中没有直接访问此信息的方法,应用程序也不允许按照您所建议的方式操纵操作系统。您处于自己的小盒子里;苹果公司希望您留在那里。当您提出包括“系统”在内的问题时,您可能已经超出了您的范围。
话虽如此,还是有一些技巧可以使用。您可以分配越来越大的内存块,直到收到-didReceiveMemoryWarning。此时,释放您分配的内存。这将给您一个大致的想法,即操作系统将允许您拥有多少内存。当然,这并不等同于操作系统实际拥有的内存。触发-didReceiveMemoryWarning还会导致操作系统进行一些自己的清理工作,因此这基本上是您释放内存的最有效编程方式。
释放内存的最有效的非编程方式是要求用户重新启动。对于需要大量内存的应用程序(通常是游戏),这种方法并不罕见。
SBSettings需要越狱,并且超出了SDK的范围。

谢谢您的回答。我想再问一下,在iPhone的哪个级别会显示内存不足?比如说剩余10%的内存? - Raptor
2
这并没有记录下来,而且很难确定,因为操作系统自己对内存的使用总是波动不定。你完全有可能收到内存警告,什么都不做,一切都没问题,因为操作系统自己释放了内存。由于内存碎片化,使用小块分配更多内存比使用大块分配更复杂,所以问题可能会更加复杂。 - Rob Napier

2

0

有没有什么方法可以释放整个iPhone系统的内存,而不只是一个类本身?我注意到一个名为SBSettings的应用程序可以完成这项工作,但我不知道他们是如何做到的。 - Raptor

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