私のデータ モデルには、ユーザーと通知があり、1 人のユーザーが多くの通知を持つことができます。通知では、ユーザー関係の削除ルールが無効化に設定されています。
レコードを削除すると、controllerWillChangeContent で、実際には削除が実行されますが、すぐに同じレコードの挿入が実行されることがわかります。そして、それは関係から生じているようです。
executeSaveChangesRequest で、変更要求をログに記録すると、次のようになります。
<NSSaveChangesRequest: 0xff441e0> { inserts (), updates ((
"0xa95e9d0 <x-coredata://76F3..F8CF/User/p__af_1>"
)), deletes ((
"0xa983880 <x-coredata://76F34AF...BAF8CF/Notification/p__af_228>"
)) locks () }
それで良さそうです。通知を削除し、ユーザーを更新して、その通知がなくなったことを伝えます。
掘り下げた後、 AFIncrementalStore で不要な挿入が発生していることがわかり-newValueForRelationship
ます。したがって、何らかの理由で、その削除されたオブジェクトが User の関係を介して戻ってきます。
削除されたオブジェクトが削除されたままになりnewValueForRelationship
、再挿入されないようにするにはどうすればよいですか?