次のように、コア データからマネージド オブジェクトを削除しています。
[item.managedObjectContext deleteObject:item];
(この項目は作成されますが、この時点では保存されないことに注意してください。)
バグを修正しようとして、アイテムが実際に削除されたことを確認したかった. まず、すべての「アイテム」は「リスト」に属しているため、前後の list.items の数をログに記録しました。変化はありませんでした。容疑者。
念のため、削除の前後にフェッチ リクエストを追加し、コンテキスト内のアイテムの総数を記録しました。ここが変なところです。
フェッチを実行するというまさにその行為が、私の最初のバグを取り除くことに気づきました。つまり、削除の前後にフェッチを実行すると、コンテキスト内のアイテムの数が 1 つ減ることが明確にわかります。ただし、このフェッチがないと、アイテムは削除されません (少なくともすぐには削除されません)。
ここで何が起こっているのかについて、誰かが洞察を持っていますか?