1

コアデータに親子コンテキストを使用しています。オブジェクトはバックグラウンド スレッドとコンテキストに追加されます。それはうまくいきます。オブジェクトはバックグラウンド コンテキストでも削除され、子/親に保存されます。コア データ デバッグで、オブジェクトが削除され、正常にコミットされていることがわかります。その後、nsfetchresultcontroller (nil に設定し、キャッシュを再初期化して削除) にオブジェクトをフェッチするように指示しています。オブジェクトが削除されても、オブジェクトはまだそこにあります。

CoreData: sql: COMMIT
CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: INSERT INTO ZTLOG(Z_PK, Z_ENT, Z_OPT, ZFXY, ZFXYZ) VALUES(?, ?, ?, ?, ?)
CoreData: sql: COMMIT

消去

CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: DELETE FROM ZTLOG WHERE Z_PK = ? AND Z_OPT = ?
CoreData: sql: COMMIT

nsfetchresult コントローラー

CoreData: annotation: fetch using NSSQLiteStatement <0x68a2760> on entity 'TLog' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZXY, t0.ZXYZ WHERE  t0.Z_PK = ? ' returned 0 rows
CoreData: annotation: total fetch execution time: 0.0080s for 0 rows.
CoreData: annotation: fault fulfilled from database for : 0x687ab40 <x-coredata://BCA24D29-F9D3-4068-8122-E7A43C116D8A/TLog/p2>

そのため、fetchcontrollerとdelegateをnilに設定して再初期化したにもかかわらず、テーブルビューにはまだオブジェクトがあります。ただし、まだ fetchresult コントローラ fetchedobjects にはオブジェクトが削除されています。最後のログ行は疑わしいようです。すべてのオブジェクトを削除しました。なぜそれは過ちを果たすのですか?

誰か何か考えはありますか?

4

1 に答える 1