私はココアを学んでいるので、ご容赦ください。Core Data に関するいくつかのチュートリアルを実行してきましたが、RESTkit を Rails アプリケーションで使用することに取り組んでいます。また、RESTkit wiki ページのすべてのドキュメント、ソリューション レシピも読みました (特に iOS SDK: Advanced RestKit Development は非常に役に立ちました)。
簡単にするために、この質問では非常に限られた数のモデル/関係を使用します。
次のモデルがあるとします: 会社、人、言語、次の関係:
company many-to-many person
language 1-to-many person
RAILS と iOS アプリの両方が同期していること。
ある時点で、既存の会社と既存の言語に関連する新しい人物が Rails アプリに紹介されます。スティーブ ジョブズ > ディズニー、スティーブ ジョブズ > 英語 同時に、新しい人が新しい会社に追加され、新しい言語が追加されます。Anna Kourinikova > Nike, Anna Kournikova > ロシア語
同期ソリューションを設定するにはどうすればよいですか? すべての新しい人の JSON ダンプを求めることができます。
[{"person": {
"id": 123,
"name": "Steve Jobs",
"language": {
"id": 1,
"name": "English"
},
"company": {
"id": 1,
"name": "Disney"
}
}},
{"person": {
"id": 124,
"name": "Anna Kournikova",
"language": {
"id": 22,
"name": "Russian"
},
"company": {
"id": 47,
"name": "Nike"
}
}}]
今私の質問:
1) RESTkit は、新しい会社と言語を作成してリンクできます (そうであれば、どのように?)。既存の会社では問題ないと思いますが、新しい会社はコアデータにまだ存在しません。
2) すべての会社と言語データを含める必要を回避する方法はありますか?実際のアプリケーションでは、既存の会社に人が追加された場合、iOS デバイスに既に存在するデータの膨大なオーバーヘッドが発生します。
3)最初にすべての新しい言語、すべての新しい会社を取得してから、すべての新しい人々を取得するアプローチである可能性があります。それらが関連している言語/会社のIDのみを使用することは、その方法でより良いアプローチです(帯域幅を節約するため) ) しかし、RESTkit が自動的に実行できる多くのことを手動で行っていませんか?
4) 既存の個人が別の会社にリンクされている場合はどうなりますか?
これは非常に現実的な状況のように思えるので、ドキュメントに (同様の) 例がないのは奇妙だと思います (あなたの助けを借りて解決できれば、提供されたこの主題に関するチュートリアルを喜んで書きます.)