我有Core Data
屬性是Binary Data
類型。我們使用NSArchiver
歸檔自定義對象的NSArray
,然後將其保存在Core Data
中。核心數據二進制數據類型加載不釋放內存
然後,當需要這些對象時,我們使用NSUnarchiver
將它變回NSArray
。
問題在於它耗盡了大量的內存,而且由於某種原因,我永遠無法獲得它。解除數據存檔後,檢查一些對象,然後將NSArray
或NSData
對象設置爲零,則該內存永遠不會恢復。對許多Core Data
實體執行相同的操作會導致永遠不會返回的巨大內存使用量。
爲什麼會出現這種情況,或者我可以釋放那些我明顯不再使用的內存?
編輯:
我已經做了沒有成功如下:
[managedObjectContext refreshObject:myObject mergeChanges:NO];
只需添加其他信息。不是將NSArray歸檔爲數據,而是使用coredata中可用的TRANSFORMABLE數據類型。對於例子http://stackoverflow.com/questions/8682324/insert-nsdictionary-into-coredata/25891673#25891673 –
你有沒有嘗試在'@ autoreleasepool'塊中執行該任務? – KrishnaCA
@KrishnaCA是的,但這似乎沒有幫助。 –