如何在UILabel中顯示iPhone的可用內存?如何顯示iPhone的可用內存?以及如何釋放iPhone內存?
我想問一下,如何使用iPhone SDK釋放內存?
僅供參考,我正在使用xcode 3.2.1(Mac OS X Snow Leopard)的iPhone SDK 3.1.2。
如何在UILabel中顯示iPhone的可用內存?如何顯示iPhone的可用內存?以及如何釋放iPhone內存?
我想問一下,如何使用iPhone SDK釋放內存?
僅供參考,我正在使用xcode 3.2.1(Mac OS X Snow Leopard)的iPhone SDK 3.1.2。
在SDK中沒有對此信息的直接訪問權限,並且應用程序不允許按照您的建議方式混淆操作系統。你在你自己的小盒子裏;蘋果希望你留在那裏。當你提出包括「系統」的問題時,你可能不在你的盒子裏。
這就是說,有一些技巧可以使用。您可以分配越來越大的內存塊,直到您收到-didReceiveMemoryWarning
。在這一點上,釋放你分配的內存。這會給你一個粗略的想法,即操作系統將允許你有多少內存你有。這與操作系統當然有多少不一樣。跳閘-didReceiveMemoryWarning
也會導致操作系統自己做一些內務處理,所以這是非常有效的編程方式,你必須釋放內存。
釋放內存的最有效的非編程方式是要求用戶重新啓動。對於需要大量內存(通常是遊戲)的應用程序,這種方法並非聞所未聞。
SBSettings需要越獄並且不在SDK之外。
您可以通過在您完成分配的對象上調用「釋放」來釋放內存。請參閱http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
有什麼辦法來釋放整個iPhone系統的內存,而不是一個類本身?我注意到一個名爲SBSettings的應用程序可以完成這項工作,但我不知道它們是如何實現的。 – Raptor 2009-10-14 02:40:25
使用mach api可以確定iPhone上的可用內存量。看到這個相關的問題:Available memory for iPhone OS app
謝謝你的回答。我想進一步問一下,在哪個級別,iPhone會看到內存不足?說10%的內存剩餘? – Raptor 2009-10-14 04:44:10
它沒有記錄,很難確定,因爲操作系統自己使用的內存總是在波動。你完全有可能收到內存警告,什麼也不做,並且一切都很好,因爲操作系統自己釋放了內存。由於內存碎片,也可以使用小塊而不是大塊來分配更多的內存,所以問題可能會變得很複雜。 – 2009-10-14 04:54:00