2010-08-01 86 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時,在您的委託方法中,釋放一些當前未使用的內存。

相關問題