2010-12-29 11 views
3

私はコアデータをデータストレージに使用するiPadアプリを持っています。私はiTunesでファイル共有を有効にしたいと思います。ユーザが.sqliteファイルを削除または変更できるようにしたいとは思いません。コアデータとiTunesファイル共有 - アプリのアップデート時に.sqliteファイルを移動/非表示にしますか?

ファイルを別の隠しディレクトリに移動できますか?

また、ファイルを読み取り専用にできますか?変更できない限り、ユーザーはファイルにアクセスできても構いません。

私は現時点で私を逃れている些細な解決策があると思う。

+0

NSLibraryDirectoryを使用します。詳細については、この回答を参照してください:http://stackoverflow.com/questions/1567134/how-can-i-get-a-writable-path-on-the-iphone/1567147#1567147 –

+0

ありがとう、それは多くの助けになります。私は、Documentsディレクトリからファイルを移動する方法を最も混乱させていると思います。移行自体は簡単ではないようです(アプリケーションデリゲートの永続ストアを作成する前にファイルを移動してから、起動時に有効なファイルを確認してください) – Eric

答えて

2

recommended directoriesのいずれかにコアデータデータストアを格納することをお勧めします。必要な場合は、ドキュメントディレクトリ内のファイル共有を介してそこにコピーして、データストアにユーザーがアクセスできるようにすることができます。ドキュメントディレクトリのファイルやディレクトリの上書きや削除(iTunesファイル共有による)をユーザが制限する方法はありません。

+0

データベースをキャッシュに保存しない*ディレクトリ:OSはいつでもその内容を削除することができます。また、バックアップされないので、ユーザーがデバイスを復元する(または置き換えるなど)場合、データベースは間違いなく消えます。 –

+0

上記のドキュメントは、ライブラリディレクトリを使用できないことを意味しますが、アプリケーションサポートディレクトリを使用する方が適切かもしれません。ドキュメントには次のように書かれています: "NSSearchPathForDirectoriesInDomainsはNSUserDomainMask以外のドメインマスクパラメータまたは表3-1以外のディレクトリ定数ですが、アプリケーションは返されたディレクトリlocatに書き込むことができません私はライブラリフォルダに直接書き込むことはしていませんが、できないと思いますか?私は私の答えをより一般的なものにし、オープンにします。 – slycrel

+0

更新いただきありがとうございます。実際には、デバイスのライブラリディレクトリに書き込むことができます。あなたは 'NSApplicationSupportDirectory'について正しいかもしれませんが、私は試していませんが、それは適切であり、リストにあります。 –

関連する問題