CoreDataで次の関係を想像してみてください
Recipe < --- >> Ingredient
MagicalRecordを使用して、ローカルCoreDataデータベースでサーバーデータベース(JSON API)を定期的にインポートしています。
したがって、次のようにインポートRecipe 1
すると、Ingredient 1
次のようになります。
{
id:1,
name: "Recipe 1",
ingredients: [{
name: 'Ingredient 1'
}]
}
つまり、MagicalRecordは2つのエンティティを作成し、それらをリンクします。
サーバーが次のように変更されると、問題が発生します。
{
id:1,
name: "Recipe 1",
ingredients: [{
name: 'Ingredient 2' <-- Notice here
}]
}
MagicalRecordが行うことは、Ingredient 2
レコードを作成し(正しい)、それをリンクして(正しい)唯一の要素にすることRecipe 1
です。しかし、Ingredientsを検索すると、CoreDataデータベースに2つのレコードが見つかりました。
質問は、インポートおよび削除時に「削除された」オブジェクトを追跡することは可能ですか?