Swift 3 (dimentica NSURL).
let fileName = "20-01-2017 22:47"
let folderString = "file:///var/mobile/someLongPath"
Per effettuare un'URL da una stringa:
let folder: URL? = Foundation.URL(string: folderString)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath
Se vogliamo aggiungere il nome del file.Si noti, che appendingPathComponent() aggiunge la codifica per cento automaticamente:
let folderWithFilename: URL? = folder?.appendingPathComponent(fileName)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath/20-01-2017%2022:47
Quando vogliamo avere String, ma senza la parte principale (attenzione che codifica per cento viene rimosso automaticamente):
let folderWithFilename: String? = folderWithFilename.path
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017 22:47"
Se noi vogliono mantenere la parte di radice facciamo questo (ma mente la codifica per cento - non viene rimosso):
let folderWithFilenameAbsoluteString: String? = folderWithFilenameURL.absoluteString
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017%2022:47"
per aggiungere manualmente la codifica per cento per una stringa:
let folderWithFilenameAndEncoding: String? = folderWithFilename.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017%2022:47"
Per rimuovere la codifica per cento:
let folderWithFilenameAbsoluteStringNoEncodig: String? = folderWithFilenameAbsoluteString.removingPercentEncoding
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017 22:47"
La percentuale di codifica è importante perché gli URL per le richieste di rete hanno bisogno, mentre gli URL al file system non sempre funziona - dipende dal reale metodo che li usa. L'avvertimento qui è che possono essere rimossi o aggiunti automaticamente, quindi è meglio eseguire il debug di queste conversioni con attenzione.
eccellente. O ora in Swift: 'URL (stringa: urlstring)' –