2010-11-25 10 views
6

私のiPhoneアプリでは、大量のデータ、つまり約1000ページのテキストがあります。plistまたはSqliteデータベースにデータを格納する方が良いですか?

どこに保存すればよいですか?

plistまたはSqliteデータベーステーブルを使用する必要がありますか?

どれがより効率的であると証明できますか?

助けてください。

ありがとうございました。

+1

http://stackoverflow.com/questions/1090391/plist-or-sqlite – Rhapsody

答えて

8

大量のデータの場合、すべてのデータがメモリにロードされずにアクセスされるため、sqliteまたはcoreDataが優れています。
pListを使用すると、ファイル全体がメモリに読み込まれます。その後、必要なデータだけを保持できますが、最適化されていません。

+0

ご利用いただきありがとうございました。本当に使用するのは簡単です。私は決してそれを明確に説明したことはありませんでした。一度にすべてのデータをメモリにロードしたいのですか? – RachelC

1

構成設定を保存するには、plistを使用する必要があります。

私はsqlite3またはコアデータストレージを使用しています。

1

pListは実際にはxmlファイルなので、利点(人間とコンピュータの両方で容易に読み取ることができる)とxmlの短所(保存/取り出し効率)が適用されます。

SQLiteは明らかにSQLのメリットをもたらしますが、大規模なデータの場合は、SQLiteを使用することをお勧めします。

1

アクセスする方法は重要です。無作為にまたは小さな部分にアクセスするものであれば、sqliteのようなデータベースを使用します。それはあなたが一気にすべてを使用しているものなら、plistは大丈夫です。 @ Benoitが述べたように、plistは完全にメモリにロードされます。ブックのようなものでは、ページを別々のファイルに保存することも考えられます。そのため、ファイルシステムを使用してアクセスを管理します(もちろん、その使い方によって異なります)。

5

どのようにして、データを保存したいもののために依存します:

使用SQLiteの場合:データは部分的にしか

  • 繰り返しアップデート
  • をアクセスする必要がある

    1. データそのものがバイト単位で大きい。

    そうでなければplistを使用してください!

    あなたの場合、私はSQLite 3またはcoredataを使用することをお勧めします。

  • 0

    プロパティのplistは、単に文字列、数値、配列や辞書のような一般的なデータ・タイプを含むことができ、ネストされたキーと値のペアのリストである

    一覧表示します。

    賛否

    • 理解するシンプル。
    • 使いやすいです。

    短所

    は(少なくとも簡単に)それらに複雑なクエリを実行することはできません。 ファイル全体を読み取ってその中からデータを取り出し、ファイル全体を保存してその中のデータを変更する必要があります。

    SQLiteの

    CoreDataが登場するまでは、これはiPhoneアプリケーションでデータを読み書きする一般的な方法でした。あなたのWeb開発者なら、これは新しいことではありません。プレースメントリストとは異なり

    賛否

    • 、あなたは前もってデータベース全体をロードする必要はありません。 これは、SQLiteが多くのデータを持つアプリケーションに適しているようにします。
    • データをスライスおよびダイシングするためのplistよりも優れています。

    短所

    プレースメントリストよりも急峻な学習曲線。 作業が面倒になることがあります。

    コアデータ

    その新しい、エキサイティングな、と、おそらくほとんどの開発者はアウトにここから使用するかを。

    私は、要約するのに十分な時間をCoreDataに費やしていません。詳細については、チュートリアル(下記)を参照してください。

    賛否

    • はるかに少ない手間とSQLiteののほぼすべての利点(Appleはあなたのために汚い仕事の 多くを行います)。

    • アップルが推奨する方法として、公式のドキュメントとサンプルコードがたくさんあります(他の2つの方法の記事やサンプルコードはAppleのウェブサイトから不思議に見えているようです)。プレースメントリストより

    短所

    • 急な学習曲線。
    • キラー:iPhone OS> 3.0でのみ動作します。あなたの市場が主にiPod Touchユーザー(アップグレードの代金を支払う必要がある)で構成されている場合、そのキラー
    関連する問題