gpt4 book ai didi

ios - 当管理对象在 moc A 中被删除时,它是否仍然存在于 moc B 中?

转载 作者:行者123 更新时间:2023-11-28 21:15:16 25 4
gpt4 key购买 nike

想象一下两个托管对象上下文,moc A 和 moc B,它们填充了相同的对象集并共享相同的持久存储协调器。现在,我从 moc A 中删除一个对象并保存上下文。它还会存在于 moc B 中吗?

我测试了那个场景,看起来对象仍然在 moc B 中徘徊,但我不确定它们在那里是否安全,也就是说,从某种意义上说,我可以将它们写回商店。

我问的原因是我想在核心数据支持的应用程序中实现剪切/复制/粘贴但是在复制时我不想将实际对象写入粘贴板而是使用 promise/数据提供机制。

假设用户复制了一堆托管对象,我向粘贴板(对象 ID 数组)写了一个 promise 。然后,假设用户删除了所有这些对象,但稍后想将它们粘贴回某个地方。我的数据提供者将无法获取它们,因为它们已被删除。

但我想知道如果我将它们存储在私有(private)托管对象上下文中进行保管会发生什么情况。从主上下文中删除后,它们是否会从保管上下文中消失?

最佳答案

问题 Will it still exist in moc B 的答案是:这取决于 :)

因此,如果您的代码在 iSO 10(或更高版本)上运行,答案是是的,它仍然存在,因为上下文 A 具有不同的生成数据。

如果您的代码在 iOS 9(或更早版本)上运行,答案还是:视情况而定。如果上下文 B 中的任何对象是 fault,那么如果您尝试访问任何属性(来自此故障的对象),您的应用程序将会崩溃,例如 CoreData could not fulfill a fault。否则您可以访问这些数据(它们保存在原始缓存中)。但是(可能我从来没有尝试过)如果您将尝试保存被其他上下文删除的对象,那么我预计 CoreData 会出现错误。

从主上下文中删除后,它们会从保管上下文中消失吗?是:不,它们不会消失,但在 iOS 9(或更早版本)中,如果你有一些 fault,你将永远无法实现它们(因为它们不再存在于任何地方)。

关于ios - 当管理对象在 moc A 中被删除时,它是否仍然存在于 moc B 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522549/

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