Mein Programm verwendet Karte und ich habe ein UITextField, wo der Benutzer einen Suchausdruck eingibt, die Karte wird dann Anmerkungen der Suchergebnisse auf der Karte anzeigen. Das Programm funktioniert gut im Simulator, aber wenn es auf meinem Handy getestet wird, löst es einen Fehler "Null beim Entpacken eines optionalen Wertes" aus, wenn ich zwei Arbeiten wie "Hundepark" eingebe. Aber das Programm wird den Fehler nicht auf mein Telefon werfen, wenn ich zum Beispiel einfach "Hund" eingebe. Ich habe den Delegierten in der ViewDidLoad eingerichtet und alle meine Ausgänge sind ordnungsgemäß verknüpft. Ich habe hier gesucht und versucht, das Problem ohne Erfolg zu beheben, also dachte ich, ich würde fragen und sehen, ob euch Leute auffallen, was ich vermisse.Swift UIText Feld wirft keinen Fehler, wenn mehrere Wörter eingegeben
Hier ist die Funktion für die UITextLabel Suche:
@IBAction func searchField(_ sender: UITextField) {
let allAnnotations = self.mapView.annotations
self.mapView.removeAnnotations(allAnnotations)
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = textField.text!
request.region = mapView.region
let search = MKLocalSearch(request: request)
search.start(completionHandler: {(response, error) in
if error != nil{
print("Error occured in search: \(error!.localizedDescription)")
}else if response!.mapItems.count == 0{
self.textField.text = "No matches found"
}else{
print("Matches found")
for item in response!.mapItems{
let annotation = MKPointAnnotation()
annotation.coordinate = item.placemark.coordinate
annotation.title = item.name
annotation.subtitle = item.placemark.thoroughfare! + ", " + item.placemark.locality! + ", " + item.placemark.administrativeArea!
self.mapView.addAnnotation(annotation)
}
}
})
sender.resignFirstResponder()
}
Auf welcher Zeile tritt der Fehler auf? Sie sollten erwägen, Ihre Optionen mit 'guard let' oder' if let' auszupacken, anstatt mit '!' Zu erzwingen. Dies kann Ihnen helfen zu verstehen, wo auch die Dinge falsch laufen. –
Versuchte das und es war immer noch der Fehler. Hat den Code im Debugger durchlaufen und den Fehler nach der Zeile "self.mapView.addAnnotation" geworfen. Was wirklich komisch ist, ist, dass wenn Sie ein Wort eingeben, es in Ordnung ist, aber zwei und es wirft einen Fehler auf. Ganz zu schweigen davon, dass es perfekt im Simulator funktioniert. – oblagon
auf welcher Zeile erhalten Sie Fehler? –