Swift 3 (vergiss NSURL).
let fileName = "20-01-2017 22:47"
let folderString = "file:///var/mobile/someLongPath"
Um eine URL aus einer Zeichenkette machen:
let folder: URL? = Foundation.URL(string: folderString)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath
Wenn wir die Dateinamen hinzufügen möchten.Beachten Sie, dass appendingPathComponent() automatisch die prozentuale Codierung fügt hinzu:
let folderWithFilename: URL? = folder?.appendingPathComponent(fileName)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath/20-01-2017%2022:47
Wenn wir haben String wollen, aber ohne den Wurzelteil (achten, dass Prozent Codierung automatisch entfernt wird):
let folderWithFilename: String? = folderWithFilename.path
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017 22:47"
Wenn wir will den Wurzelteil halten wir dies tun (aber die prozentuale Codierung ausmacht - es wird nicht entfernt):
let folderWithFilenameAbsoluteString: String? = folderWithFilenameURL.absoluteString
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017%2022:47"
um den Prozentsatz der Codierung für eine Zeichenfolge manuell hinzufügen:
let folderWithFilenameAndEncoding: String? = folderWithFilename.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017%2022:47"
Um den Prozentsatz der Codierung zu entfernen:
let folderWithFilenameAbsoluteStringNoEncodig: String? = folderWithFilenameAbsoluteString.removingPercentEncoding
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017 22:47"
Die Prozent-Codierung ist wichtig, weil URLs für Netzwerkanforderungen sie benötigen, während URLs System Datei wird nicht immer funktionieren - es auf dem tatsächlichen hängt Methode, die sie verwendet. Der Nachteil hierbei ist, dass sie automatisch entfernt oder hinzugefügt werden können, damit diese Konvertierungen besser debugged werden.
Excellent. Oder jetzt in Swift: 'URL (string: urlstring)' –