2016-05-29 122 views
0

有沒有辦法獲得變量正在使用多少內存?獲取對象的內存

我的意思是,我有一個內含圖像的字典,如果它變得太大,我想刪除它裏面的一些鍵/值對。

回答

0

這正是NSCache設計自動處理的內容。給你更深的問題,不像你在想什麼。 「X使用多少內存」是一個非常模糊和複雜的問題,特別是當你考慮UIImage時,它可以隨時改變它的內存使用情況,並且包含大量不直接針對你的程序的內存。 UIImage已經做了很多內存優化;研究它的文檔,然後再重塑它已經在做的事情。

+0

這樣做,我發現它更容易實現我自己的全球詞典。謝謝! – Ancinek

+0

請注意,'NSCache'提供了一些你不能在自己的代碼中重新實現的特性。特別是,如果內存不足,可以在程序暫停時清除可丟棄內容。如果您嘗試重新實現'NSCache',則在這種情況下,您的應用程序將被終止而不是清除其可丟棄內容。 (也就是說,如果你使用'init(named:)'創建了你的'UIImage',那麼它已經有了可廢棄的內容,當你被掛起時可以清除它。) –

+0

有沒有一種方法可以觀察緩存的特定值,如果該值被添加到緩存然後觸發一個函數?當我創建自己的字典時更容易,因爲我剛剛在didSet屬性觀察器中發出通知。 – Ancinek