0

制御していない 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 データにその一意のキーが含まれておらず、既存のオブジェクトのチェックが失敗し、エントリが重複するという問題は解決しません。

4

1 に答える 1

1

MagicalRecord をドロップし、Core Data API を直接使用することで解決しました。

于 2013-10-16T10:10:00.587 に答える