2009-07-25 3 views
2

Ich bin sicher, es gibt einen besseren Weg, dies zu tun. Ich habe diesen Codeabschnitt, den ich verwende, um das DocumentsDirectory auf einem iPhone oder einem Simulator zu löschen. Manchmal möchte ich nur eine saubere Weste, und manchmal mache ich Änderungen an einer Datenbank und ich muss sie neu erstellen.Was ist Ihre Methode dafür ... Ihr DocumentsDirectory während der iPhone-Entwicklung auszulöschen?

Also, in einer meiner Funktionen, die aufgerufen wird, wenn ich meine App einschalte, habe ich diesen Code auskommentiert, und ich entferne den Kommentarblock, wenn ich zurücksetzen möchte. Wie geht's?

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"); 
    } 
} 

Ich bin ein Neuling iPhone Entwickler. Wenn dies etwas wie ein Python-Server wäre, würde ich nur ein Skript ausführen, aber ich bin mir nicht sicher, was die XCode/iPhone-Konvention dafür ist.

Antwort

1

Ich glaube, das ist, wie Sie es tun müssen ... Apps sind "Sandboxed", so dass Sie nicht auf andere Weise zum Dokumentenverzeichnis gelangen können. (Aber bitte korrigieren Sie mich, wenn ich falsch liege!)

Alternativ können Sie die App löschen (halten Sie darauf gedrückt und tippen Sie auf das X auf dem Startbildschirm) vor dem Erstellen, um alle Daten zu löschen.

5

Normalerweise lösche ich die App nur jedes Mal aus dem Simulator, wenn ich dieses Verzeichnis löschen muss.

2

Ihre Methode sieht aus wie das, was ich tun würde. Allerdings können Sie dies ändern:

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

dazu:

[... stringByAppendingPathComponent:[dirContents objectAtIndex:i]]; 
Verwandte Themen