2

iOS アプリでデータをインポートすると問題が発生します。

データはコアデータと共に保存されます。ボタンでデータをインポートしようとしていました。クリックすると、最初に JSON 形式の txt ファイルに保存されたデータが sqllite ファイルに保存されます。

私の質問はこれです。このような量のデータをインポートするのは非常に遅く、ユーザーがボタンをクリックしたり、初期データをインポートするのを待ったりするのは友好的ではありません。データをインポートするより良い方法はありますか?

ありがとう。

4

1 に答える 1

1

場合によります。たとえば– applicationDidFinishLaunching:、ユーザーが特定のボタンに触れたときにデータをインポートすることができます。

どちらの場合も、バックグラウンドでデータをインポートします。これにより、(大量のデータがある場合) UI のフリーズを回避し、一種の進行状況インジケーターを表示できます。ユーザーは、何が起こっているのかを知ってもっと喜ぶかもしれません。

バックグラウンドでデータをインポートするには、新しい iOS 5 API for Core Data を使用するか、Marcus Zarraの importing -and-displaying-large-data-sets-in-core-data/に関するチュートリアルに従ってください。

もう 1 つの方法は、事前に入力されたデータベースから開始することです。そのデータベースに (JSON ファイルを使用して) データを入力するダミー プロジェクトを作成し、実際のアプリケーション プロジェクトでそのデータベースを使用します。

それが役立つことを願っています。

編集

アプリの開始時にデータをインポートするのはユーザーフレンドリーではありません。

なぜだめですか?

だから私はデータを入れようとしていました-dbファイルをアーカイブに入れ、それをアプリストアに送信しました。このように、データのインポートが完了し、初期データが受け入れられるテスト中に db ファイルを取得できるかどうか疑問に思っていました。そして、このテスト db ファイルをアーカイブに入れて、appstore に公開します。したがって、ユーザーは最初にデータをインポートする必要はありません。テストデータのコピーを使用するだけです

私はここで要点を得たかどうかわかりません。ここで、 preload と import existing data の意味を説明します。アプリをアプリ ストアに送信するときに、アプリと一緒に db ファイルを送信する必要があります。たとえば、アプリケーション ディレクトリ内。同梱発送も可能です。ただし、この場合、db ファイルは読み取り専用なので注意してください (変更する場合は別の場所に移動する必要があります)。

prepolutade db を作成する必要があるときの私の個人的なやり方なので、ダミー プロジェクトを作成することをお勧めします。これにより、プロジェクトをよりクリーンに保つことができます。ただし、実際のプロジェクトでそのデータベースを作成することもできます。最初の方法に従えば、単純に sql ファイルをアプリのアプリケーション ディレクトリに移動し、コア データにそれを読み取るように指示できます。

于 2012-07-03T12:48:21.373 に答える