2011-06-17 18 views
1

私は、表示された質問にユーザーが答えることができるiphoneの質問と回答のアプリを作成しています。iphoneにデータを保存するのに最適な方法

現在、ユーザーの回答を格納するWebサービスを呼び出しています。しかし、私は、Webサービスがダウンするとどうなるか少し気になります。私は、ユーザーの回答をローカルに保存し、起動しているときにWebサービスを呼び出す必要があります。

ウェブサービスがダウンしたときにユーザーの回答を保存するにはどうすればよいですか。これに対してSqlliteは良い選択ですか?

お勧めします。

おかげで、

答えて

4

は、このためにSqllite良いオプションですか?

はい、SQLiteは確かに良い選択です。他の選択肢はコアデータです。

Use CoreData or SQLite on iPhone?

+0

もちろん、Core Dataフレームワークをsqlliteで使用することもできます。 –

1

はい。私は、質問と回答のエンティティを持つCore Dataベースのアプリケーションを設定し、それらの間の関係を設定します。場合

  1. Sqliteを
  2. コアデータ
  3. クライアントサイドのストレージ

:それからちょうどNSFetchedResultsControllerを使用するか、

1

あなたはいくつかのオプションを持っているデータを収集し、表示したいものは何でもウェブベースのルートに行きたい場合は、Safari Client-Side Storage and Offline Applications Programming Guideを見てみましょう。

基本的に、データベースのローカルコピーをメモリに保存して、Webサービスが停止しても、ユーザーは引き続きアプリを使用できます。

4

データモデルの複雑さによって異なります。私はこのようなことを最近見たことがあり、ここで私が学んだことがあります。 iPhoneで最も人気のあるデータ格納方法は、以下のとおりです。

  • plistの階層データの少量(KS数百人)のための
    • 良いです。
    • 関係やクエリが複雑な場合(コードを記述する必要があるため)、不正です。
    • 非常にeasy to learn
    • array、dict、string、data、date、integer、real、booleanの要素をサポートします。
    • XMLとして保存できます。これは編集可能で移植性があり、バイナリファイルとして保存することもできます。
  • コアデータ
    • それは検索と永続的な機能を持つオブジェクトグラフマネージャです。
    • いいえfew hours of learningが必要です。
    • 初めてご利用いただきましたらset it upです。
    • オブジェクトグラフの管理、オブジェクトモデルの拡張、クエリの書き込み、元に戻す/やり直し、変更されたデータモデルへの移行、メモリ管理、並行アクセスの処理が可能になるため、plistよりも優れています。
    • 理由:
      • パフォーマンスは似ており、開発のスピードは速いです。
      • オブジェクトを作成する方が高速です。
      • オブジェクトがメモリ内にある場合、クエリを実行する場合、バックエンド(通常はメモリまたはSQLite)で検索する必要はありません。
  • SQLiteの
    • データベース。
    • 操作でオブジェクトをメモリに移動する必要がない場合は、コアデータよりも優れています。例:1を更新、削除、選択します(存在するかどうかを確認してください)。
    • compile the extensionの場合は全文検索があります。
    • 難しいです。ラッパーを使用すると簡単になります。FMDBegodatabase

あなたは離れてのplistで得ることができる場合はそれを行います。書き込む必要があるコードの量が多すぎる場合は、コアデータに切り替えます。あなたが専門家であり、絶対にneed the performanceがSQLiteを使用している場合に限ります(もちろん、あなたは既にCoreiteでなくSQLiteを知っています)。

関連する問題