Swift. URL Rückgabe null
Ich versuche, öffnen Sie eine website in meiner app, aber aus irgendeinem Grund eine Linie hält die Rückgabe nil, heres mein code:
let url = URL(string: "http://en.wikipedia.org/wiki/\(element.Name)")!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
Es ist die erste Zeile ( let url = URL...
), das hält die Rückkehr dieser Fehler:
fatal error: unerwartet gefunden nil while unwrapping ein Optionaler Wert.
Was soll ich tun?
- Überprüfen Sie
element.Name
. Wenn es einen optionalen String-Interpolation kann unerwartetes Verhalten verursachen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht zwingen, packen Sie es mit (!). Wenn Sie (!) und der Wert der variable ist null, Ihr Programm stürzt ab und Sie erhalten den Fehler zu finden. Stattdessen möchten Sie sicher packen Sie die optional entweder mit einem "bewachen lassen" oder "wenn Sie" - Anweisung.
Wenn das nicht den trick tun haben Sie vielleicht ein Problem mit dem element.Name. Also ich würde überprüfen, um zu sehen, ob das optional weiter, wenn Sie immer noch Probleme.
Update
Hinzugefügt habe ich einen möglichen Weg zu prüfen, das element.Name-Eigenschaft, um zu sehen, wenn Sie werfen kann, ist es als String und erstellen Sie die gewünschte url, die Sie suchen zu erstellen. Sehen Sie den code vor dem code, den ich zuvor gepostet.
element.Name
. Wie es ist, verursacht die URLnil
was in einem Absturz. Ihre Antwort einfach verhindert den Absturz, aber es löst nicht das Problem der Erstellung der URL, wie gewünscht.element.Name
Zeichen enthält, müssen escaped werden wie Leerzeichen oder andere Sonderzeichen.Swift 4-version für dieses Update:
kann es ein encoding-Problem.
haben Sie versucht,