La conversion d'URL à la Chaîne et de retour à nouveau
Donc j'ai converti un NSURL
à un String
.
Donc, si je println
il ressemble file:///Users/...
etc.
Plus tard, je veux que ce retour comme une NSURL
j'ai donc essayer et de le convertir en arrière comme on le voit ci-dessous, mais je perds deux barres obliques qui apparaissent dans la chaîne de version ci-dessus, qui à son tour rompt le code de la url
est pas valide.
Pourquoi mon cours de conversion vers NSURL
la suppression de deux barres obliques de la String
je lui donne, et comment puis-je convertir retour à la NSURL
contenant les trois barres obliques?
var urlstring: String = recordingsDictionaryArray[selectedRow]["path"] as String
println("the url string = \(urlstring)")
//looks like file:///Users/........etc
var url = NSURL.fileURLWithPath(urlstring)
println("the url = \(url!)")
// looks like file:/Users/......etc
Vous devez vous connecter pour publier un commentaire.
fileURLWithPath()
est utilisé pour convertir une plaine chemin d'accès au fichier (par exemple "/chemin/vers/fichier") à une URL. VotreurlString
est une URL complète de la chaîne, y compris le système, de sorte que vous devriez utiliserpour la convertir à
NSURL
. Exemple:URL(string: urlstring)
Dans Swift 4 et Swift 3,
À convertir en Chaîne de caractères de l'URL:
ou,
Et de convertir les URL à la Chaîne:
L'un au-dessous de convertit le "contenu" de l'url de la chaîne
String(contentsOf: URL)
renvoie la charge utile de cette ressource, et non pas l'URL dans la chaîne de format. UtilisationURL.absoluteString
pour obtenir la chaîne de version de l'URL. developer.apple.com/reference/foundation/nsurl/...Il est plus agréable d'obtenir la version de chaîne de la trajectoire de la NSURL dans Swift:
/questions/27062454/converting-url-to-string-and-back-again
urlhttps://stackoverflow.com/questions/27062454/converting-url-to-string-and-back-again
file://
format.Mise à JOUR: attention à l'url, il peut être nul dans cet exemple.
Vous pouvez envelopper votre url dans le devis pour le convertir en une chaîne de caractères
file:///Users/foo
). Tout juste si le chemin d'accès absolu est nécessaire (pensez/Users/foo
), puisurl.path
doit être utilisé que dans @iphaaw la réponse ci-dessous.Swift 3 (oublier NSURL).
De faire une URL d'une chaîne:
Si nous voulons ajouter le nom de fichier. Notez que appendingPathComponent() ajoute le pourcentage d'encodage automatiquement:
Quand on veut avoir de la Chaîne, mais sans la partie racine (attention pour cent de codage est supprimé automatiquement):
Si nous voulons garder la partie racine nous faire (mais l'esprit le pourcentage de codage - il n'est pas supprimé):
Pour ajouter manuellement le pourcentage de codant pour une chaîne de caractères:
Pour supprimer le pourcentage d'encodage:
Le pourcentage de codage est important car l'Url pour les demandes de réseau ont besoin, tandis que les Url de système de fichiers ne fonctionne pas toujours, ça dépend de la méthode qui les utilise. L'inconvénient ici, c'est qu'ils peuvent être retirés ou ajoutés automatiquement, afin de mieux déboguer ces conversions soigneusement.
Swift 3 version de code: