【发布时间】:2010-12-06 13:01:16
【问题描述】:
如何在 UILabel 中显示 iPhone 可用内存?
我想问一下,如何使用 iPhone SDK 释放内存?
仅供参考,我正在使用 iPhone SDK 3.1.2 和 xcode 3.2.1 (Mac OS X Snow Leopard)。
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0 memory-management
如何在 UILabel 中显示 iPhone 可用内存?
我想问一下,如何使用 iPhone SDK 释放内存?
仅供参考,我正在使用 iPhone SDK 3.1.2 和 xcode 3.2.1 (Mac OS X Snow Leopard)。
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0 memory-management
您可以通过在分配完对象后调用“释放”来释放内存。见http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
【讨论】:
在 SDK 中无法直接访问此信息,并且不允许应用按照您建议的方式与操作系统混为一谈。你在自己的小盒子里;苹果希望你留在那里。当您提出包括“系统”在内的问题时,您可能会跳出自己的框框。
也就是说,您可以使用一些技巧。您可以分配越来越大的内存块,直到收到-didReceiveMemoryWarning。此时,释放您分配的内存。这将使您大致了解操作系统将允许您拥有多少内存。当然,这与操作系统的数量不同。跳闸-didReceiveMemoryWarning 也会导致操作系统自己做一些内务处理,因此这几乎是您必须释放内存的最有效的编程方式。
释放内存的最有效的非编程方式是要求用户重新启动。对于需要大量内存的应用程序(通常是游戏),这种方法并非闻所未闻。
SBSettings 需要越狱并且在 SDK 之外。
【讨论】:
可以使用 mach api 确定 iPhone 上的可用内存量。请参阅此相关问题:Available memory for iPhone OS app
【讨论】: