iPhoneシミュレータでNSDocumentDirectoryに保存したファイルを削除する
2011-07-20
iPhoneアプリ開発中はシミュレーターを使ってデバッグ等を行うわけですが、開発中に間違ったデータを保存したりすると、読み込み時にも間違ったデータを読み込んでしまい、うまく起動することができません。
そのトラブルを回避する方法として、間違ったデータファイルを削除するのですが、そのファイルがどこに保存されているのか分からない方もいるのではないでしょうか? 今日はそれを調べて削除してみることにしましょう。
NSDocumentDirectoryってどこ?
ユーザーのデータ保存用に利用する場所として「NSDocumentDirectory」を使って以下のようにパスを取得するコードを書くことが多いです。
NSArray* paths; NSString* path; paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); if ([paths count] < 1) { return nil; } path = [paths objectAtIndex:0];
で、ここで取得できるパスってどこ?と思うのですが、デバッガで調べてみると「path」変数には次のような文字列が入ります。
/Users/(ユーザ名)/Library/Application Support/iPhone Simulator/(シミュレータのバージョン)/Applications/(アプリケーションごとのGUID)/Documents
つまり、このパスの中にデータが保存されることになります。
ここで気になるのは、アプリケーションごとのGUIDの部分なのですが、このIDはiPhoneシミュレーター上にアイコンが登録されている間は変化しません。 ただし、iPhoneシミュレーター上から削除し、再度シミュレーターで実行した場合、新たにGUIDが割り振られるので注意してください。
Documents内を削除して解決
このDocumentsディレクトリの中にあなたが保存した間違ったデータファイルがあるので、これをFinder上かターミナルを使って削除してください。
もしGUIDを調べるのが面倒な場合は、Documentsディレクトリと同じ階層に「(プロジェクト名).app」というアプリケーションファイルが出来ているので、上記パスの「Applications」あたりからファイル検索してみても良いでしょう。
Documentsディレクトリ内にドットで始まるような不可視フォルダを作っていた場合は、Documentsディレクトリごと削除してもOK。 再度シミュレーターで実行すればDocumentsフォルダが新規作成されます。
2011-07-20