0

たとえば、コアデータを次のように構造化しています...


クラス

  • classID <-RestKit primaryKeyAttribute
  • 名前
  • 時間
  • 学生(1対多の関係)

学生(クラスにネスト)

  • 学生証
  • 名前
  • クラス(逆の関係)<-RestKit primaryKeyAttribute **これは機能しませんか?!**

上記のように、マッピングのprimaryKeyAttributeを指定しました。restkitを使用してロード要求を送信すると、同じ主キーでオブジェクトが正しく更新されます。RestKitはクラスを正しく更新しているように見えますが、学生の場合、新しいクラスを追加し、古い学生のクラス関係を無効にするだけです。そのため、クラスを参照せずに、dbに不要な学生エンティティがあります。

RestKitを使用して生徒の関係を正しく更新する方法はありますか?ところで、代わりにstudentIDをprimaryKeyAttributeとして使用することを考えましたが、新しい更新で一部の学生を削除すると、正しく機能しない可能性があります。更新する前にクラスのすべての生徒をクリアする必要があるかもしれませんが、RestKitでそれを行う方法もわかりません。RKObjectLoader didLoadObjectが呼び出されるまでに、すべてが既にmanagedObjectContextに保存されているように見えるためです。何か案は?:(

4

1 に答える 1

0

それでもRestKit-wayソリューションを見つけることができず、これに答えることができる人はいないようです:-\だから、私が思いつくことができる最善のアプローチを投稿しています。

私の現在の回避策は、クラスの生徒を繰り返し処理し、で手動で削除することですobjectLoader:willMapData:objectLoader:didLoadObject:ここは、新しいデータがまだMOCに保存されていない場所であるため、ここで行う必要があります(ではありません)。

Classエンティティを完全に削除することもできますが、その方法では実際には古いエンティティは更新されません。新しい「コアデータ内部_pk」(主キー)を使用して新しいものを作成します(はい、私はそれを気にします)。

于 2012-04-26T05:01:34.623 に答える