Ich habe versucht, versucht und fangen im folgenden CodeVersuchen und Fangen mit NSURL (fileURLWithPath)
if let s = songId {
let track: NSURL!
track = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(s, ofType: "mp3")!)
.............
}
ich mit dem folgenden Code kam zu implementieren:
do {
track = try NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(s, ofType: "mp3")!)
}
catch let error as NSError {
print("NSURL Error: \(error.localizedDescription)")
}
Aber ich die folgenden Warnungen:
keine Anrufe zu werfen Funktionen treten innerhalb ‚versuchen‘ Ausdruck
und
'fängt' Block ist nicht erreichbar, da keine Fehler in 'do' Block
Und das ist mir fremd geworfen werden, weil diese Konstruktion in der Regel funktioniert. Nur mit NSURL
funktioniert diese Konstruktion nicht. Und ich kann nicht herausfinden, warum das passiert. Vielleicht hat es etwas damit zu tun, dass es optional ist, aber ich bin mir nicht sicher. Ich kann nicht herausfinden, wie man das löst. Ich muss versuchen/fangen oder etwas ähnliches, aber ich kann es nicht herausfinden, wie es funktioniert.
Ich sah einige ähnliche Probleme bei Google, aber es gab mir keine Antwort. Also meine Frage ist: Wie kann ich eine Try/Catch-Konstruktion oder etwas ähnliches mit NSURL implementieren?
Vielen Dank im Voraus.
Vielen Dank, das ist eine schöne Lösung! – Bas
Warum nicht einmal 'guard let trackURL = NSBundle.mainBundle(). URLForResource (s, mitErweiterung:" mp3 ") else {...? – vadian
@vadian vernünftige Beobachtung. Wird aktualisiert, sobald ich meinen Laptop bekomme. –