我的Core Data
属性是Binary Data
类型。我们使用NSArchiver
归档NSArray
个自定义对象,然后将其保存在Core Data
中。
然后,在需要这些对象时,我们会使用NSUnarchiver
将其转回NSArray
。
这个问题是它占用了大量内存,而且由于某种原因我永远无法恢复。取消归档数据,检查一些对象,然后将NSArray
或NSData
对象设置为nil后,该内存永远不会被恢复。对许多Core Data
实体执行相同的操作会导致永远不会返回的大量内存使用。
为什么会发生这种情况,或者我可以释放那些我显然不再使用的内存了?
修改
我做了以下没有成功:
[managedObjectContext refreshObject:myObject mergeChanges:NO];
答案 0 :(得分:0)
我遇到了同样的问题。当我使用NSUnarchiver取消归档数据时,它会生成大量临时内存,并且不会释放临时内存。我通过添加@ autoreleasepool来解决它,就像@KrishnaCA说的那样。它不适合您添加的代码吗?如果您显示简单的代码,这有助于解决问题。