So konvertieren Sie diese Zeichenfolge in Swift in eine URL


75

Ich brauche URL-Dateipfad als URL (NSURL in alten Versionen von Swift). Ich habe das:

let paths = NSSearchPathForDirectoriesInDomains(
        .documentDirectory, .userDomainMask, true)

// NSString *documentsDirectory = [paths objectAtIndex:0];
let documentsDirectory = paths[0] as String

var filePath:String? = nil
var fileNamePostfix = 0
repeat {
    filePath =
    "\(documentsDirectory)/\(dateTimePrefix)-\(fileNamePostfix).mp4"
    fileNamePostfix += 1
} while (FileManager.default.fileExists(atPath: filePath))

Ich muss dies in eine URL konvertieren, um es in der self.fileOutput.startRecording(to: <#outputFileURL: URL?#>, recordingDelegate: <#AVCaptureFileOutputRecordingDelegate?#>)Methode zu verwenden.

Ich habe es versucht, filePath as? URL()aber es ist nicht richtig.

Antworten:


166

Sie müssen tun:

let fileUrl = URL(string: filePath)

oder

let fileUrl = URL(fileURLWithPath: filePath)

je nach Ihren Bedürfnissen. Siehe URL-Dokumente

Vor Swift 3 hieß die URL NSURL.


Swift 4: Der erste gibt null, der zweite funktioniert für Pfade wie "/dir/file.ext". Vielen Dank!
William T. Mallard

1
Warum ist das so? Weiß jemand?
Sharan Duggirala

14

In Swift 3 verwenden:

let url = URL(string: "Whatever url you have(eg: https://google.com)")


1
danke, es hat bei mir funktioniert, früher habe ich URL.init (fileURLWithPath: <# T ## String #>) verwendet, das eine falsche URL erzeugt hat. Ich denke, das ist für einen Dateipfad.
Rajath Kornaya

9

In Swift3:
let fileUrl = Foundation.URL(string: filePath)


1
Dies wird zurückgegeben, nilwenn der Pfad Zeichenfolgen enthält! Verwenden Sie let fileUrl = URL(fileURLWithPath: filePath)stattdessen.
Natevw

6

in Swift 4 zum Konvertieren in URL verwenden URL

let fileUrl = URL.init(fileURLWithPath: filePath)

oder

let fileUrl = URL(fileURLWithPath: filePath)

2

Beachten Sie den folgenden Code, um den Dateipfad in String in NSURL zu konvertieren

var filePathUrl = NSURL.fileURLWithPath(path)

1
Bitte versuchen Sie es auch kurz zu erklären.
Ataur Rahman Munna
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.