Also habe ich ein NSURL
zu einem konvertiert String
. Also wenn ich println
so aussehe file:///Users/...
etc.
Später möchte ich dies zurück als, NSURL
also versuche ich es zurück zu konvertieren, wie unten gezeigt, aber ich verliere zwei der Schrägstriche, die in der obigen String-Version erscheinen, was wiederum den Code bricht, da der url
ungültig ist.
Warum wird bei meiner Konvertierung wieder NSURL
zwei Schrägstriche aus dem von String
mir angegebenen Wert entfernt, und wie kann ich wieder in die NSURL
drei Schrägstriche konvertieren ?
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
Antworten:
fileURLWithPath()
wird verwendet, um einen einfachen Dateipfad (z. B. "/ path / to / file") in eine URL zu konvertieren. IhreurlString
ist eine vollständige URL-Zeichenfolge einschließlich des Schemas, daher sollten Sie verwendenum es wieder zu konvertieren
NSURL
. Beispiel:quelle
URL(string: urlstring)
In Swift 4 und Swift 3 , in String zu URL konvertieren:
oder,
Und um die URL in einen String umzuwandeln:
Der folgende konvertiert den 'Inhalt' der URL in einen String
quelle
String(contentsOf: URL)
Gibt die tatsächliche Nutzlast dieser Ressource zurück, nicht die URL im Zeichenfolgenformat. Verwenden SieURL.absoluteString
diese Option , um die Zeichenfolgenversion der URL abzurufen. developer.apple.com/reference/foundation/nsurl/…Es gibt eine bessere Möglichkeit, die String-Version des Pfads von der NSURL in Swift abzurufen:
quelle
/questions/27062454/converting-url-to-string-and-back-again
für URL zurückkehren/programming/27062454/converting-url-to-string-and-back-again
file://
Format nicht.HINWEIS : Achten Sie auf die URL, es ist
optional
und es kann seinnil
. Sie können Ihre URL in das Zitat einschließen, um sie in eine Zeichenfolge umzuwandeln. Sie können es auf dem Spielplatz testen.Update für Swift 5, Xcode 11:
quelle
file:///Users/foo
) zurückgibt . Wenn nur der absolute Pfad benötigt wird (denken Sie nach/Users/foo
),url.path
sollte dies wie in der Antwort von @ iphaaw unten verwendet werden.quelle
Swift 3 (vergiss NSURL).
So erstellen Sie eine URL aus einer Zeichenfolge:
Wenn wir den Dateinamen hinzufügen möchten. Beachten Sie, dass appendingPathComponent () die prozentuale Codierung automatisch hinzufügt:
Wenn wir String haben möchten, aber ohne den Root-Teil (achten Sie darauf, dass die prozentuale Codierung automatisch entfernt wird):
Wenn wir den Stammteil behalten möchten, tun wir dies (aber beachten Sie die prozentuale Codierung - sie wird nicht entfernt):
So fügen Sie die prozentuale Codierung für eine Zeichenfolge manuell hinzu:
So entfernen Sie die prozentuale Codierung:
Die prozentuale Codierung ist wichtig, da URLs für Netzwerkanforderungen diese benötigen, während URLs zum Dateisystem nicht immer funktionieren - dies hängt von der tatsächlichen Methode ab, mit der sie verwendet werden. Die Einschränkung hierbei ist, dass sie möglicherweise automatisch entfernt oder hinzugefügt werden. Debuggen Sie diese Konvertierungen daher besser sorgfältig.
quelle
Swift 3 Versionscode:
quelle
2020 | SWIFT 5.1:
Und Erweiterung für
URL?
Verwendung:
quelle
quelle