Objective c 了解CoreData实体的创建和更新;草稿行“;

Objective c 了解CoreData实体的创建和更新;草稿行“;,objective-c,core-data,nsmanagedobject,nsmanagedobjectcontext,Objective C,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,对于许多人来说,这听起来可能是一个简单的问题,我试图更多地了解CoreData如何管理对象,我在文档中遇到了以下问题: 托管对象上下文充当草稿行。您可以创建和 向it注册托管对象,对对象进行更改,然后 根据需要撤消和重做更改。如果您对托管 与给定上下文关联的对象,这些更改仍然是本地的 直到您通过发送上下文来提交更改为止 保存:消息 我想知道这个草稿本是什么。我刚刚运行了CoreData profiler,发现通过创建托管对象并随后更新其属性,不会对存储进行“Core Data Saves”调用。

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

托管对象上下文充当草稿行。您可以创建和 向it注册托管对象,对对象进行更改,然后 根据需要撤消和重做更改。如果您对托管 与给定上下文关联的对象,这些更改仍然是本地的 直到您通过发送上下文来提交更改为止 保存:消息

我想知道这个草稿本是什么。我刚刚运行了CoreData profiler,发现通过创建托管对象并随后更新其属性,不会对存储进行“Core Data Saves”调用。所以我想,如果你能证实这一点的话,一切都会留在记忆中。 然后,第二个问题是,如果这一点得到确认,那么在保存之前处理托管对象的创建,特别是更新时,是否有最佳的CoreData“内存”实践

谢谢

  • 确认
  • 是的,您当然不应该在没有保存的情况下在上下文中有太多事务。例如,如果要在循环中创建10.000个实体,则根据这些实体的大小,建议偶尔保存一次。请注意,相反的情况也适用:如果您保存太频繁(例如,每次保存10.000个循环),则效率也非常低