了解核心数据实体在"暂存#34中的创建和更新;

时间:2012-01-30 21:54:55

标签: objective-c core-data nsmanagedobject nsmanagedobjectcontext

对于许多人来说,这可能听起来像一个简单的问题,我试图更多地了解CoreData如何管理对象,我在文档中遇到了这个问题:

  

托管对象上下文充当暂存器。你可以创建和   用它注册托管对象,对对象进行更改,以及   撤消和重做您想要的更改。如果您对托管进行了更改   与给定上下文关联的对象,这些更改保持在本地   在您通过发送上下文a提交更改之前的上下文   保存:消息。

我想知道这个暂存器是什么。我刚刚运行CoreData分析器并通过创建托管对象并稍后更新其属性来查看,没有对该商店进行“核心数据保存”调用。所以我想如果你能确认的那样,所有内容都会留在内存中。 那么,第二个问题,如果确认,在保存之前处理托管对象的创建和特别更新时,是否有最佳的CoreData“内存”实践?

感谢

1 个答案:

答案 0 :(得分:0)

  1. 确认。
  2. 是的,你当然不应该在没有保存的情况下在上下文中有太多的交易。例如,如果要在循环中创建10.000个实体,那么根据这些实体的大小,建议偶尔保存一次。请注意,相反的情况也适用:如果您经常保存(例如,每次都在10.000循环中),那么效率也非常低。
相关问题