gpt4 book ai didi

iphone - 托管对象上下文保存和refreshObject :mergeChanges:有什么区别

转载 作者:行者123 更新时间:2023-12-03 19:07:44 25 4
gpt4 key购买 nike

你好,有什么区别

  [self.context refreshObject:site mergeChanges:YES];

  [self.context save:nil];

有时我同时使用它们,有时我只使用save。它在两种情况下都有效。

最佳答案

-save: 保存您对上下文中的任何托管对象所做的更改。这意味着它们被刷新到持久存储协调器,然后协调器将它们写入持久存储,持久存储将它们写入磁盘(假设磁盘支持的存储)。

另一方面,-refreshObject:mergeChanges: 做了一些完全不同的事情。它从持久存储协调器读取对象的当前状态(从持久存储中读取,等等)。为 mergeChanges 传递 YES 意味着保持对对象的任何本地修改不变,并且仅更新未更改的字段。这与 -save: 几乎相反。

作为一个简单的思想实验,如果您运行 -save: 然后终止您的应用程序,则在下次启动时您修改的数据仍然可用。如果您运行 -refreshObject:mergeChanges: 然后终止您的应用,则任何本地更改都将丢失。

关于iphone - 托管对象上下文保存和refreshObject :mergeChanges:有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15443070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com