5

MagicalRecordデータのインポートで発生している問題についてサポートが必要です。MagicalRecordは、主キー(relatedByAttribute)を確認することで、オブジェクトを複製せずにリレーションシップマッピングを処理できるという印象を受けました。

簡単なJSONは次のとおりです。

[
  { 
    parentId: "<unique id>",
    parentName : "<name>",
    children : [
                  {
                     childId: "<unique id>",
                     childName: "<name>"
                  },
                  {
                     childId: "<unique id>",
                     childName: "<name>"
                  }
               ]
  },
  { <another parent with children> }
]

NSManagedObjectParentと多対多の関係にあるChildNSManagedObjectがあります。関係の名前はchildrenであり、私はそれぞれにとを設定しrelatedByAttributeました。ChildParentchildIdparentId

JSONを解析すると、JSONParentは複製されず、主キーを正しくチェックし、存在する場合は既存のオブジェクトを使用します。ただしChildren、JSONを解析するたびにオブジェクトが複製されます。個別に解析すると(JSONには子辞書を含む配列が含まれるだけです)、データを正しくマッピングし、データベースにすでに存在するChildren既存のオブジェクトを使用しても問題はありません。Children

MagicalRecordがどのように関係をマッピングするかについて、私は誤解し、間違った期待を抱いていましたか?現在、「importChildren:」を使用して拡張クラスを設定しました。このクラスでは、すべてのルックアップを手動で処理し、それに応じてオブジェクトを作成/インポートできます。

ありがとう!

4

1 に答える 1

11

私はしばらく前にこれを解決することができました。

私がしたことは、関係とエンティティrelatedByAttributeのユーザー情報ディクショナリに追加することでした。childrenChild

したがって、関係をクリックしrelatedByAttributechildId(上記の例では)に設定し、左側の子エンティティをクリックします。これについては、エンティティ自体のユーザー情報ディクショナリでもに設定relatedByAttributeされています。childId

これにより、Magical Recordは、既存のオブジェクトを使用して正しくマッピングしたり、必要に応じて新しいオブジェクトを作成したりできます。ID属性が100%一意であることが前提です。

ここに画像の説明を入力してください

于 2013-03-26T13:02:55.247 に答える