2012-03-23 11 views
0

私は現在、データベースに接続し、非同期にデータのJSONオブジェクトをダウンロードしてテーブルビューに表示するiOSアプリケーションを作成しています。大きなデータベース - デバイスにデータを表示する最も良い方法は?

現在のところ、これは正常に実行できます。しかし、データベースがはるかに大きくなり始めると、大きな不便が生じます。私はObjective-Cを合理的に熟知していますが、物事のデータベース側にはあまりありません。このデータをサーバーから取得してアプリケーションに保存するにはどうすればよいでしょうか?現時点では、JSONオブジェクトの各「オブジェクト」のデータを格納するカスタムクラスオブジェクトがあります。ただし、招待状、ログイン情報、ユーザーの詳細など、データベースが処理するアプリケーションの多くの側面があります。

コアデータを使用する方法はありますか?私はデータベースを(ある程度まで)複製し、それをローカルに格納し、そこからアクセスします。私が言ったように、私は本当にここで取るべきルートはわからないので、アドバイスは本当に感謝されるでしょう。

答えて

1

コアの位置は、位置(衛星(および無線)の位置決め)を処理するためのものです。

私はコアデータを意味すると思います。コアデータは、データをオブジェクトとして操作できるグラフオブジェクトモデルです。あなたはデータベースに直接掘り下げずに、述語(SQLのwhere節の種類)を介してオブジェクトのインスタンス化を要求し、オブジェクトを操作します。

これは、「大きな」データベースが何であるかによって異なります。それが本当に大きい場合は、その一部をローカルにコピーし、Webサービスを通じてサーバーから何が残っているかを尋ねることができます。

あなたが尋ねることのできるもう1つの質問は、決して変化しないデータ量と、ウェブサイトデータベースとアプリケーションデータベースを同期させる必要がある場合です(ウェブサイトデータベースが常に変化している場合、アプリは完全かつ常にあなたのアプリを同期しています..)。

リンク:

Introduction to Core Data

Difference between Core Data and a Database (Cocoa With Love)


編集:あなたのデータを保存する必要がある場合、あなた自身に尋ねることができ

質問はありますか?

アプリが合計200個のセルのうち20個のセルを印刷するだけの場合は、200個のセルを合計ダウンロードすることになります。他のセルの負荷は最初のダウンロード後に遅れなくなります。再利用可能なセルでテーブルビューのセルを使用している場合に特に喜ばれます。

は20の最初のセルと20の次のセルの間で数秒の遅延がありますか?私はあなたの質問に本当の "良い"答えがないと思う、それは多くの要因(アプリケーションの目的、負荷の間の許容時間、情報を変更し、サーバーやローカルに保存する必要がありますか、あなたのアプリケーションがセルで何をするのか、データベースをローカルに持っていれば "マザー"データベースとは全く無関係になるでしょう(0120)私はあなたのニーズを理解している、私はあなたがちょうど情報を取得し、それを元に戻すことなく(実際にあなたがそれを行うことができるサービスを持つことができる場合でも)、データベースを持っているあなたのアプリがいくつかの点であなたのサーバーから独立している必要があるならば、ローカルで良いです。

お客様は、このすべてにお答えし、お客様のニーズとアプリケーションおよびお客様の知識に基づいて決定を下す鍵を持っています。

+0

ありがとうございました。私はコアデータを意味しました、私は今それを変更しました。そして、例えば、Facebookアプリのニュースフィード。私は明らかに、サーバーからすべてのデータをロードし、〜100/200個のセルを取り込みたいとは思わない。 10-20が理想的な場合は、ユーザーが底に達するときにもっと読み込むかどうかを尋ねます。 JSONはまだ道のりですか? –

+0

ありがとう、私はそれを感謝します。たとえば、人々が他の友人を招待できる招待機能があり、招待状はテーブルビューを含むタブに保存されます。アプリケーションが起動してオブジェクトクラスに保持されているときに、これらをダウンロードするのが最善の方法でしょうか? –

+0

あなたがNSArrayにいくつかの招待状を持っていれば、それらをNSArrayに保存してディスク上のファイルに書き込むこともできます(writeToFile:メソッドを使用して)、起動時に取得します(initWithContentOfFile:NSArrayのメソッドを使用)。その場合、20項目のデータベースを設定することは過度のものです。データをファイルに保存してください。 – moxy

0

JSONやSOAPのようなものは、Webサービスから構造化されたデータをiPhoneアプリケーションのオブジェクトに変換する方法です。

iPhone自体にリレーショナルデータを格納するのはSQLiteで簡単です。 Here's a decent looking tutorial

データ層を作成し、データベースへの呼び出しを抽象化して、UIのようにはならない場所のコード全体にSQLクエリを配置しないようにします。

関連する問題