webentwicklung-frage-antwort-db.com.de

Wie finde ich das Dokumentenverzeichnis des Benutzers auf einem iPhone?

Ich lese Erica Saduns iPhone Developer's Cookbook und bin auf eine Frage gestoßen.

Sie sagt in dem Buch, dass der Weg, um das Documents-Verzeichnis des Benutzers zu finden, über den Code besteht:

[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

dies scheint jedoch etwas spröde zu sein und ist der normalen Mac-Methode in gewisser Weise abträglich.

NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);

Gibt es bestimmte Gründe, einen über dem anderen zu verwenden?

59
bwinton

Ziel:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

Schnell:

var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)

Sie möchten das erste Element des zurückgegebenen Arrays.

91
Ben Gottlieb

Hier ist der Code, den ich in meinem Framework verwende.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
49
Lee

Sie sollten die NSFileManager-Methoden verwenden, die URLs zurückgeben, die das bevorzugte Format darstellen.

let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL

Diese Methode dient zum Auffinden bekannter und allgemeiner Verzeichnisse im System. 

Ein Array von NSURL-Objekten, die die angeforderten Verzeichnisse identifizieren. Die Verzeichnisse werden nach der Reihenfolge der Domänenmaskenkonstanten geordnet, wobei Elemente in der Benutzerdomäne zuerst und Elemente in der Systemdomäne zuletzt angezeigt werden.

14
Zelko

Ich benutze das

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipLocalPath = [documentPath stringByAppendingString:fileName];
0

In Swift v3 habe ich den folgenden Ausschnitt verwendet 

var paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
0
Suresh Velusamy