制御していない Web サービスから JSON 応答をインポートしています。この応答には、同じ JSON 内に複数の関連オブジェクトShow
を持つエンティティにマップした要素が含まれています。Artwork
userinfo キーを使用して関係を設定しましたが、うまく機能しています。私の問題は、JSON のアートワーク要素に一意の ID が含まれていないことです。
{
Filetype = jpg;
Id = "-1036406380";
Offset = 2;
Rating = 1;
Type = 3;
}
同じ を持つ要素が複数存在する場合がありますId
。これにより、それらの要素がすでに CoreData に格納されている場合、MagicalRecord はこれらの要素を認識できなくなります。
私の解決策は、uniqueArtworkID というエンティティに新しいフィールドを導入することでした。このフィールドは、ID、オフセット、およびタイプによって連結された文字列になります。
最後に質問: MagicalRecord がアートワーク エンティティの「プライマリ」キーとしてそれを取得できるように、コードのどの時点で uniqueArtworkID を作成できますか?
- (BOOL) MR_importValuesForKeysWithObject:(id)objectData
編集: NSManagedObject サブクラスでオーバーライドして、一意の ID を生成および設定できることがわかりました。一歩近づきますが、元の JSON データにその一意のキーが含まれておらず、既存のオブジェクトのチェックが失敗し、エントリが重複するという問題は解決しません。