這是我一直想問的問題。 當我在Profiler中尋找分配問題時運行iOS應用程序時,我發現NSManagedObject在使用和顯示後很長一段時間內保留在內存中,並且已撤銷分配的UIViewController。當然,當再次分配UIViewController時,數字不會增加,這表明沒有泄漏,並且CoreData有一些對象重用。CoreData和NSManagedObject內存狀態
如果我有已在實施「mobjc」作爲名稱的MyManagedObject類,那麼在探查我可以看到越來越多的:
MyManagedObject_mobjc_
的數量可以變化,並且對於少量數據,例如sqllite中的100個對象,它會增長到該限制並停留在那裏。
但似乎有時在應用程序生命週期中對象被釋放,所以我想CoreData本身正在做一些內存優化。 似乎並不是整個對象都被保留下來,而是因爲它的「錯誤」(請原諒我的英語:-)),因爲活字節的大小很小。 即使很多故障對象也會佔用內存。
但在這一點上,我想一些確認:
- 是CoreData真正管理和內存優化的對象?
- 有什麼我可以幫助我的應用程序保留儘可能少的對象嗎?
- 與上述問題相關,我真的需要照顧這個問題嗎?
- 你有一些鏈接,可能由蘋果公司,在這裏解釋這個特定的主題?
也許它是相關的,我用於測試的應用程序依賴於ARC和iOS 5.1。
感謝