2011-07-19 11 views
1

静的なコンテンツと静的な設定が多いiosアプリケーションがあります。今、私はアプリのアップデートをリリースするときに私が更新する複数のplistファイルにそれらを保存します。コンテンツ&の設定をplistファイルに保存するのは、ソースコードの配列や辞書としてではなく、便利です。複数のplistファイルを1つのアプリケーションにまとめました

私のアプリではモジュールごとにplistがあり、設定にはplistファイルがあります。アプリ全体の約8つのplistファイル。主に小さなplistファイル。

これは実際には小さなplistファイルなので、更新をリリースしたときにのみ変更するので、コアデータやsqliteを使用する理由がわかりません。

すべてのコンテンツと設定をplistファイルに保存するのが妥当です。それはパフォーマンスの問題ですか?私はplistデータをキャッシュして、ファイルを1回だけフレーズするか、それとも比較的安価な呼び出しであることを確認する必要がありますか?

答えて

1

このパターンが効果的であれば、変更する必要はありません。 1つのモジュールによって格納されたデータと別のモジュールによって格納されたデータとの間に結合がない場合、異種のplistファイルに情報を格納することには何も問題ありません。

コアデータ/ SQLiteを使用する主な利点は、それがリレーショナルであることです。状態が他の状態にどのように関係しているのかを理解し、それを効率的にクエリ、並べ替え、ブラウズ、フィルタリングするためのAPIを提供します。しかし、あなたのデータが非リレーショナルである場合、それをリレーショナルデータベースに詰め込むことによって得られるデータはほとんどありません。

パフォーマンスに関しては、ユーザーが状態のビットを表示するたびにplistファイルを再処理すると、非常に非効率的になります。個人的には、あなたのplistの状態を表すメモリ内の配列または辞書を保持し、変更が行われるたびにplistにメモリ内のデータを書き戻すことをお勧めします。あなたはメモリ内のコピーを使用するだけなので、読み取りは常に高速です。

2

plistファイル(特に小さなもの)の読み書きは高度に最適化されているため、パフォーマンスヒットは起こりません。

ご不明な点がある場合は、いつでもInstrumentsを使用してアプリを実行して、plistsの処理に時間がかかりすぎるかどうか確認できます。

plistsの読み込み頻度に応じて、コンテンツをキャッシュすることをお勧めしますが、使用方法によって異なります。それらをキャッシュするということは、plistを読み込むことを犠牲にして必要なときだけでなく、常に多くのメモリを使用することを意味します。

関連する問題