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?
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.
Hier ist der Code, den ich in meinem Framework verwende.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
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.
Ich benutze das
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipLocalPath = [documentPath stringByAppendingString:fileName];
In Swift v3 habe ich den folgenden Ausschnitt verwendet
var paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)