2

この質問 ( SQLite Database Copy ) から、読み取り専用にならないようにするには、インストール時に sqlite データベースをバンドルから作業ディレクトリにコピーする必要があることがわかります。しかし、データベースが巨大な場合はどうなるでしょうか? 本来の2倍のスペースを占有したくありません。バンドルからオリジナルを削除する方法はありますか? インストール後に使用されないバンドル内の大きなデータベースで多くのスペースを浪費しないようにする他の回避策はありますか? ありがとう!

4

3 に答える 3

1

非常に大きいとはどのくらい大きいですか?

また、ファイルの削除/名前変更/変更など、バンドルをいかなる方法でも変更することはできません。

データベースを変更する場合は、バンドルからコピーする必要があります。

ただし、Apple はスペース不足に対する解決策を用意しています。データを再作成できる場合は、データベースをドキュメント フォルダーではなくキャッシュ フォルダーにコピーする必要があります。そうすれば、クラウドにプッシュされず、デバイスの空き容量が少ない場合、ios によって自動的に消去されます。

于 2012-11-08T13:42:22.977 に答える
0

もう 1 つの方法は、バンドルに sqlite データベースを埋め込む代わりに、インストール時に sql ステートメントを使用してプログラムでデータベースを作成することです。

于 2012-11-08T14:14:26.970 に答える
0

アプリケーション バンドル リソース ディレクトリからファイルを削除する方法はありません (読み取り専用)。DB が大きすぎてコピーできない場合は、アプリケーションの初回起動時にデータベースをダウンロードすることをお勧めします。

于 2012-11-08T13:37:03.847 に答える