0

以前に質問されたことがある場合は申し訳ありませんが、この問題について質問は見つかりません。Obj-Cは初めてですので、しばらくお待ちください。前もって感謝します。

データベースを操作するアプリケーションがあります。SQLite3アプリケーション内のデータベースを操作したいのですが、毎回UIViewControllerデータベースからデータを再度ロードしています。その結果、一部のビューではアプリケーションの動作が少し遅くなり、他のビューではさらに遅くなります。

だから、私の質問は、SQLite3データベースをどのように扱うかということです。最善の方法は、データベースを呼び出してデータベース内に保存するたびに、SQLite3データベースをの内部NSMutableArrayにロードするか、アプリ自体から作業することです。NSMutableDictionary's

NSMutableArray辞書を使用している場合、アプリケーション内にデータを保存するタイミングを知るにはどうすればよいですか?

どうもありがとうございます。

4

1 に答える 1

3

データの性質に大きく依存しますが、データベースを使用しているときは、貴重なメモリを使い果たしたくないほど十分なデータがあるため、必要に応じてデータベースからデータを取得する傾向があります。それ、View ControllerからView Controllerへ。NSArrayメモリは、iOS デバイスで最も不足しているリソースの 1 つです。そのため、データを無作法に/に保持することを決定する前に注意してくださいNSDictionary

明らかに、アプリケーション全体に SQL コードを散らかさないほうがよいので、可能であれば、単一のクラス内にすべてのデータ取得をカプセル化することをお勧めします。そうすれば、必要に応じて後日データの保存/取得メカニズムを変更でき、プログラム全体のコードを変更する必要がなくなります。

アプリがデータベースからデータを取得するのが少し遅いというあなたの観察に関しては、データベースからのデータの取得は一般的に非常に高速であるため、それは非常に奇妙です。パフォーマンスの問題が発生したのは、BLOB オブジェクト (画像の PNG/JPG 表現など) をデータベースに格納したときだけです。したがって、小さなサムネイル サイズの画像を扱っている場合を除き、画像をDocumentsフォルダーに保存すると、データベースはそれらの画像ファイルのパスのみを保持します。

ただし、質問に戻ると、アプリが遅い場合は、データの正確な性質と、苦しんでいるパフォーマンス ヒットの性質を概説する別の質問を送信することをお勧めします。あなたを助けるために。

于 2012-11-10T17:18:00.157 に答える