3

私のデータ モデルには、ユーザーと通知があり、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、再挿入されないようにするにはどうすればよいですか?

4

1 に答える 1

1

shouldFetchRemoteValuesForRelationshipまあ、 false を返すように設定するのと同じくらい簡単です。理由を理解しているとは言えませんが、これは私を噛むために戻ってくるかもしれませんが、今のところ、この問題は解決しています.

于 2014-01-28T20:04:29.870 に答える