1

次のように、コア データからマネージド オブジェクトを削除しています。

[item.managedObjectContext deleteObject:item];

(この項目は作成されますが、この時点では保存されないことに注意してください。)

バグを修正しようとして、アイテムが実際に削除されたことを確認したかった. まず、すべての「アイテム」は「リスト」に属しているため、前後の list.items の数をログに記録しました。変化はありませんでした。容疑者。

念のため、削除の前後にフェッチ リクエストを追加し、コンテキスト内のアイテムの総数を記録しました。ここが変なところです。

フェッチを実行するというまさにその行為が、私の最初のバグを取り除くことに気づきました。つまり、削除の前後にフェッチを実行すると、コンテキスト内のアイテムの数が 1 つ減ることが明確にわかります。ただし、このフェッチがないと、アイテムは削除されません (少なくともすぐには削除されません)。

ここで何が起こっているのかについて、誰かが洞察を持っていますか?

4

1 に答える 1