2009-07-25 5 views
2

これを行うより良い方法があると確信しています。私はiPhoneやSimulator上のDocumentsDirectoryを一掃するためにこのコードを使用しています。時には私はちょうどクリーンスレートをしたい、時々私はデータベースを変更し、私はそれを再構築する必要があります。iPhone開発中にDocumentsDirectoryを消去する方法は?

私のアプリケーションの電源を入れたときに呼び出される関数の1つでは、このコードはコメントアウトされており、リセットしたいときにコメントブロックを削除します。職業はなんですか?

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
NSArray *dirContents = [fileManager directoryContentsAtPath:[paths objectAtIndex:0]]; 

for (int i=0; i<[dirContents count]; ++i) { 
    NSString* theDir = [[paths objectAtIndex:0] stringByAppendingString:[@"/" stringByAppendingString:[dirContents objectAtIndex:i]]]; 
    NSLog(theDir); 
    if ([fileManager removeItemAtPath: theDir error:NULL]) { 
    NSLog(@"removed dir"); 
    } 
} 

私は初心者のiPhone開発者です。これがPythonサーバーのようなものだったら、私は実行しているスクリプトを持っているだけですが、Xcode/iPhoneのコンベンションが何であるか分かりません。

答えて

1

私はあなたがそれをしなければならないと信じています...アプリは "サンドボックス"なので、ドキュメントディレクトリに他の方法でアクセスすることはできません。 (ただし、私が間違っていると誰かに教えてください)

また、ビルド前にアプリを消去して(ホーム画面でXをタップして)、データを消去できます。

5

通常、このディレクトリをクリアする必要があるたびに、シミュレータからアプリを削除するだけです。

2

あなたの方法は私のやりたいことのように見えます。しかし、あなたはこれを変更することができます。

[... stringByAppendingString:[@"/" stringByAppendingString:[dirContents objectAtIndex:i]]]; 

をこれに:

[... stringByAppendingPathComponent:[dirContents objectAtIndex:i]]; 
関連する問題