1

私のアプリでは、オブジェクトをリモートサーバーに投稿し、オブジェクトキーを取得してから、オブジェクトをローカルに保存する必要があるというシナリオがあります。アプリにCoredataとRestkitを実装しています。

オブジェクト値は、ユーザー入力から収集されます。リモートサーバーに投稿する前に、オブジェクトを準備するための優れた方法を見つけることができませんでした。このオブジェクトはNSManagedObjectタイプのエンティティであり、サーバーからオブジェクトIDを取得する前に保存したくありません。

私はこの状況を処理するために一時的なオブジェクトを使用することを提案するこれに出くわしました。しかし、そのスレッドで説明されているように、これによりコードのメンテナンスに問題が発生します。

このシナリオを処理するためのより良い方法はありますか?ありがとう。

4

1 に答える 1

3

コアデータモデルクラスをRKRequestSerializableプロトコルに準拠させます。

次に、ユーザー入力が検証されたら、通常どおりエンティティを作成し、それをparams値としてRKRequestに設定します。これにより、オブジェクトがHTTPボディとして送信されます。例については、RKParams.mの内部をご覧ください。

また、新しく作成したエンティティをRKObjectLoaderのtargetObjectとして設定します。これにより、Webサービスが情報(新しい一意のIDなど)を返すときに、新しいオブジェクトをターゲットにして、重複を作成せずに新しい一意のIDをこのオブジェクトに保存します。

泥のように澄んでいますか?

PS:ああ、自動生成されたコアデータクラスとカスタムコードの混合には注意してください!変更を加えるたびにコードが失われないように、mogenをお勧めします。

于 2012-06-27T20:23:08.293 に答える