2011-12-05 16 views
0

私たちのアプリでは、サイズが約300kbの約48のsqliteファイルをダウンロードし、それをディスクに保存します。ユーザーがモジュールに入ると、ファイルのいずれかからのデータのサブセットが読み込まれ、いくつかの条件に基づいて表示されます。ユーザーがモジュール内をスクロールすると、スクロールビューがスクロールを停止すると、停止した位置を特定し、適切なsqliteファイルを照会してデータを取得し、画面に表示します。これは、ユーザーにデータを表示するのに約2秒かかります。 これを最適化したいと思いますし、sqliteファイルの代わりにCoreDataをクエリすると、これをより高速に行うことができます。CoreDataにsqliteデータを持ち込む

したがって、問題は、各sqliteファイルのデータをCoreDataに入れて、常にCoreDataを照会することです。 48ファイルがあるので、この方法で挿入する必要があるデータが多すぎることが懸念されます。もう1つのアプローチは、フェッチされたデータのサブセットのみをCoreDataにロードし、すべてのファイルをロードする必要はありません。しかし、これは、データを表示する前に、CoreDataですでにフェッチされているかどうかを判断し、そうでない場合はsqliteに問い合せます。 もっと良い方法は何でしょうか?

答えて

1

あなたが提供した情報の量によって、Core Dataがあなたのアプリケーションに合っているかどうかを実際に見ることはできません。あなたは、他の誰かが問題に十分な情報を得ていることを知っておく必要があります。このような決定は重要です。

Btwのように、すべてのデータがコアデータの巨大なデータベースファイルになければならないという印象を受けているようです。これは当てはまりません。 管理対象オブジェクトモデルファイル(これらはコアデータ用の最終製品永続データベースファイル、.xcdatamodeld)を複数持ち、それらを選択的に開くことができます。

あなたの最善の策は、コアデータとSQLiteの使用の間の重大な違いを直接調べてみることです。彼らは両方とも彼らの場所を持っています。コアデータは適切な状況では優れています。これはリレーショナルデータベースではなく、オブジェクトグラフと永続性マネージャーであり、重要な意味を持っています。コアデータは月や月に合わせて最適化されているため、正しい状況で使用すると素晴らしい結果が得られます。しかし、他の状況では、SQLiteの直接使用がより良い選択肢になります。たとえば、Core DataからSQLiteに切り替えた人については、this blog postを参照してください。

また、相違点についてはthis nice articleをご覧ください。もちろん、Apple独自のガイドとwikipedia pageも読んでください。

ご質問いただいたご質問にはお答えできませんが、Core Dataの特定の側面についての質問がある場合は、新しい質問を投稿してください。

関連する問題