2010-02-12 82 views
10

问题:我在解析XML文件时做了一个非常大的导入。对于每10个解析的托管对象,我想保存托管对象上下文并摆脱内存中的这10个对象,这样一次内存中就不会有超过10个对象。我可以清除管理对象上下文吗?

保存后,我如何清除上下文以便所有对象都从内存中消失?

回答

25

在这样的情况下有四件事情要记住的事情:

  1. 包装你在NSAutoreleasePool
  2. 循环定期保存上下文;然后
  3. 重置上下文与-reset
  4. 释放并重新创建的自动释放池

这将刷新所有内存的使用疏通脉络。

+1

嘿马库斯!你不是那个写这个大型核心数据书的人吗?感谢你的回答。很确定这是最好的;) – dontWatchMyProfile 2010-02-12 20:32:29

+3

是的,我写了这本书:) – 2010-02-13 15:58:45

+0

我认为我们遇到了一些问题,这些说明不适用。我很想找出不同的。 SO用户http://stackoverflow.com/users/1949877/scott-carter有一篇博文http://finalize.com/2013/01/04/core-data-issues-with-memory-allocation/。我们的问题与“NSTemporaryObjectID_default”部分相同。也参见http://stackoverflow.com/questions/9575994。 – 2013-05-16 13:03:42

相关问题