2011-06-26 4 views
0

私はiPhoneアプリを持っていて、その中にデータベースがあり、ユーザーがアプリで何かをしたら更新されます。私は更新をプッシュすると、空のデータベースもプッシュして、すべてのデータを取り除くことに懸念しています。 Appleにデータベースを置き換えないように指示するにはどうすればよいですか?どのように私はすべてのユーザーの設定や情報を保持することができます、彼らはアプリで負けたくない?iOSアプリをアップデートしてSQLite3テーブルを置き換えない

答えて

1

DB内のデータを更新する場合は、既にResourcesフォルダからDocumentsフォルダにコピーしておく必要があります。そうしないと、コード化されたアプリケーションは、初めてデータをデータベースに挿入/更新した後に起動を拒否します。

したがって、自分のアプリケーションが既存のデータベースを上書きしないようにするだけで済みます。アプリケーションを更新すると、Documentsフォルダはそのままになるため、アプリの観点からは、初めて起動したのか、もう一度起動したのか、または更新したのか分かりません。

+0

私は手動で(私のアプリケーションで)データベースを上書きしない限り、そのままにしておくべきだと言っていますか? wohooo、それは素晴らしいニュースです。 – CodeGuy

+0

ドキュメントフォルダではなく、frameworksフォルダに入れます。 – CodeGuy

+0

バンドル内の位置は関係ありません。重要なのは、デバイス上のデータベースをコピーする場所です。唯一の選択肢(プログラムで)は、DocumentsフォルダまたはTemporaryフォルダです。データベースをコピーしてデータを挿入しない場合、ユーザーが最初にデータを更新したときにアプリケーションの動作が停止します。 – 0x90

関連する問題