0

アプリの起動時にデータのインポートに問題があります。最初の起動時に、多くのコア データ オブジェクト (約 400 オブジェクト) を作成します。問題は、シミュレーターでアプリを試すと、すべてが正しいように見えますが、デバイスでは、インポートのために多くの時間を待たなければならず、アプリがクラッシュする可能性があることです (毎回ではありません)。

誰かがこの問題を抱えたことはありますか? インポート スクリプトをより効率的にする必要がありますか? Core Data を使用したデータのインポートに関する適切な方法はありますか?

よろしくお願いします!

4

2 に答える 2

0

私は通常 Gopal と同じ手法を使用します。ファイルサイズ以外で私が遭遇した唯一の欠点は、出荷されたデータにエラーがあることです。これが発生し、データを修正する必要がある場合は、ユーザー データに不良データが存在するかどうかを判断し、更新する必要があります。アプリの NSUserDefaults で didUpdateToVersionX 値を確認し、ユーザー データ ストアにクエリを実行してエラーのあるレコードを見つけ、関連するオブジェクトを更新し、ストアを保存し、設定フラグを設定することで、起動時にこれに対処しました。

シード データは、ユーザーが編集可能または読み取り専用であることを意図していますか? 読み取り専用の場合は、読み取り専用ストアとユーザー書き込み可能なストアを別々に持つことができるはずです (前者はアプリ バンドルにあり、後者は Documents ディレクトリにあります)。Marcus Zarra は、別の質問への回答として、この手法について素晴らしい記事を書いています。セットアップによっては、少し余分な作業が必要になる場合があります。前述のアプリをこの手法に切り替えたいと思っていましたが、機会がありませんでした。

于 2013-02-21T15:51:58.207 に答える
-1

私は通常、アプリ自体に初期データを持つ sqlite ファイルをバンドルします。アプリの起動時に、db ファイルが存在するかどうかを確認します。存在しない場合は、バンドルからドキュメント ディレクトリなどにコピーします。

アプリのサイズが大きくなる代わりに、起動時間が短縮されます。

于 2013-02-21T15:24:29.223 に答える