2012-01-23 16 views
1

私は自分のアプリに付属のレコードを持つSQliteデータベースファイルを持っています。 私は自分のプロジェクトに追加したファイルを使用してINSERT文とUPDATE文を作成しました。 テストデバイスにアップロードした後、ファイルが読み込み専用であるという例外がありました。 少しの研究の結果、私はdbファイルをユーザーディレクトリにコピーして挿入する必要があることを知りました。これは今のところうまくいきます。しかし、私はそれについてのビューの質問がありますが、私はグーグルで答えられませんでした:SQLiteデータベースファイルをどこに保存しますか?

コピープロセスはどこに置くべきですか? AppDelegates FinishedLaunchingで実装しました。ここで、既に存在するかどうかを確認します。

どこにファイルをコピーする必要がありますか? 私は今のところMyDocumentsフォルダを使用しましたが、これは大丈夫ですか?

ファイルを暗号化できないため、別のアプリケーションがデータベースファイルにアクセスできますか?

ユーザーがデバイスからアプリを削除することを決定したとき。データベースファイルも削除されますか?

ありがとうございます!

+0

Btw。これはモノトック関連ではないので、このタグを削除することを検討してください。 – Sbhklr

答えて

3

コピープロセスはどこに置く必要がありますか? AppDelegates FinishedLaunchingに実装しました。そこには既に存在するかどうかがチェックされています。

これは本当に依存していますが、私の視点からは完了しました。

どこにファイルをコピーする必要がありますか?私は今のところMyDocumentsフォルダを使いましたが、これは大丈夫ですか?

"MyDocuments"フォルダの意味がわかりません。各アプリケーションには専用のドキュメントディレクトリがあります。それはあなたがそれをコピーすべき場所です。

ファイルを暗号化できないため、別のアプリがデータベースファイルにアクセスできますか?

(デバイスがジェイルブレイクされない限り)ユーザーがデバイスからアプリを削除することを決定したときはありません、彼らは

砂箱入りを実行します。データベースファイルも削除されますか?

はい、ドキュメントディレクトリ全体が削除されるためです。

1

私のコピープロセスはどこに入れますか?私はあなたがiOSのウォッチドッグがアプリケーションを殺す前に(15秒程度)FinishedLaunching実行を完了するまでに時間の限られた量を持っていることに留意してくださいAppDelegates FinishedLaunchingに

それを実装しました。

データベースのサイズ、デバイスの処理速度、その他の処理に応じて、すでに存在するかどうかを確認するだけです(必要な場合)。別のスレッドに。

ここではMyDocumentsフォルダを使用しましたが、これは問題ありませんか?

はい、Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments)を使用してください。

@Lightforceの答えは他のものをすべて網羅しています。

関連する問題