2

私はiPadアプリケーションに取り組んでいます。ユーザーがインターネットにアクセスできず、後でバックエンドデータベースと同期する場合は、データをローカルに保存する必要があります。

ローカルストレージについては、SQLiteでCoreDataを使用することを計画しています。

初めてコアデータを使用していますが、エンティティを取得して辞書形式で保存しているようです。

では、Modelクラスを作成する必要がありますか?

そのようなアプリケーションに適した設計は何ですか。

接続に基づいてサーバーまたはローカルDBにエンティティを格納する責任があるDataEngineクラスがあります。

モデルクラスを作成し、辞書表現でNSMangaedObjectContextを使用して自分自身を保存するように個々のモデルクラスに依頼する必要がある場合、またはモデルオブジェクトを作成して実行するように依頼する代わりに、データを直接保存する必要がある場合は、少し混乱します。

エンティティごとにMoelクラスを使用する必要があります。これは、サーバーから/サーバーに移動するJSON表現間のインターフェイスとしてサーバーになります。

そして、managedObjectContextから取得した表現。

それとも、Core Dataが作成するエンティティとリレーションシップに完全に依存する必要がありますか?

4

1 に答える 1

2

私はこれを逆に行います:最初にあなたがチェックするためのいくつかのこと、そして次にいくつかのアイデア。

私自身の質問を確認してください。

カスタムカテゴリでは、JSON表現とクラスの間のインターフェイスを実行できると思います。

また、必要なことの多くをすでに実行できるRestKitも確認する必要があります。


私が理解できる限り、あなたは2つの別々の問題について話している:

  1. 接続に基づいてローカルデータをサーバーに同期します。
  2. モデルクラスの使用。

問題1

共通のコードを持つクラスが必要であり、各モデルクラスには独自のマッピング(モデルとJSONの間でマッピングするため)と保存メソッドが必要だと思います。

DataEngineクラスなどの別のクラスは、適切なオブジェクトを適切なタイミングで保存します。マッピングと保存に役立つRestKitをご覧ください。同期についてはよくわかりませんが。

問題2

モデルクラスが必要だと思います。オブジェクトを操作するのに大いに役立ち、さまざまな種類のデータを見つけるためのメソッドを保存する場所があります。

このため、生成されたクラスファイルを使用してCoreDataモデルを作成し、カスタムコードを保持しながらいつでも更新できるため、私の質問が役立つ場合があります。

于 2012-09-25T07:40:35.220 に答える