2016-09-09 4 views
0

Ich versuche, diese Funktion ausgeführt wird, wenn eine Taste abgegriffen wird.Swift 3 Link öffnen

@IBAction func openLink(_ sender: UIButton) { 
    let link1 = "https://www.google.com/#q=" 
    let link2 = birdName.text! 
    let link3 = link2.replacingOccurrences(of: " ", with: "+") //EDIT 
    let link4 = link1+link3 
    guard 
     let query = link4.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), 
     let url = NSURL(string: "https://google.com/#q=\(query)") 
     else { return } 
    UIApplication.shared.openURL(URL(url)) 
} 

jedoch die letzte Zeile als markiert ist „nicht Wert vom Typ nicht-Funktion aufrufen‚UIApplication‘Diese Syntax ist von hier, also bin ich nicht sicher, was los ist

+0

Das verursacht den Absturz der App, wenn die Taste gedrückt wird "unerwartet gefunden Null beim Entpacken eines optionalen Werts" – Alex

+0

Stellen Sie sicher, dass Sie die richtige URL-Verknüpfung verwenden. Möglicherweise müssen Sie Prozent Ihre Abfragezeichenfolge –

+0

zu entkommen Ich habe den Link in einem Browser versucht, und der Link ist gut. Was ist Prozent Flucht? – Alex

Antwort

7

Verwenden Wache das Textfeld ein Texteigenschaft auszupacken, die Vorkommen zu ersetzen, Prozent-Codierung auf das Ergebnis hinzufügen und eine URL aus dem resultierenden String erstellen.

Versuchen Sie wie folgt:

guard 
    let text = birdName.text?.replacingOccurrences(of: " ", with: "+"), 
    let query = text.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), 
    let url = URL(string: "https://google.com/#q=" + query) 
else { return } 
if #available(iOS 10.0, *) { 
    UIApplication.shared.open(url) 
} else { 
    UIApplication.shared.openURL(url) 
} 
+1

Ich schätze Leute wie Sie, die Leuten wie uns helfen, mit unseren nicht so gebildeten Wanzen und Fragen zu helfen. Sie helfen uns buchstäblich, ihren Lebensunterhalt zu verdienen! – Honey

+0

@Honey dankt Froh zu helfen. Bitte schön. –