我正在从核心数据中删除一个托管对象,如下所示:
[item.managedObjectContext deleteObject:item];
(请注意,此项目已创建,但此时未保存。)
试图修复一个错误,我想确认该项目确实已被删除。首先,由于每个“项目”都属于一个“列表”,我记录了 list.items 前后的计数。没有变化。怀疑。
为了更加确定,我在删除前后添加了一个获取请求,并记录了上下文中的项目总数。这就是它变得奇怪的地方。
我发现执行 fetch 的行为消除了我最初的错误。换句话说,如果我在删除前后执行一次 fetch,我可以清楚地看到上下文中的项目数减少了一个。但是,如果没有此获取,则不会删除该项目(或至少不会立即删除)。
有没有人对这里发生的事情有所了解?