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.

user3745888
quelle

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.

Jiaaro
quelle
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)")

Sreedeepkesav MS
quelle
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)

VivienG
quelle
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)
Kosar
quelle
2

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

var filePathUrl = NSURL.fileURLWithPath(path)
user2342053
quelle
1
Bitte versuchen Sie es auch kurz zu erklären.
Ataur Rahman Munna