-2
„Initializer für bedingte Bindung muss optional Typ, nicht 'string'. Ich versuchte sender.stringValue
und sender.stringValue?
aber Xcode Dinge sein lustiges wieder. (Oben Fehlermeldung Attribut)"Initialisierer für bedingte Bindung muss einen optionalen Typ haben, nicht 'string'", aber was sonst in dieser Situation?
extension MapViewController: NSSearchFieldDelegate {
override func searchFieldAction(sender: NSSearchField) {
// Note: use defer to dismiss the search controller even if the guard returns
defer {
}
guard let text = sender.stringValue.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
where !text.isEmpty else { return }
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = text
request.region = mapView.region
let search = MKLocalSearch(request: request)
search.startWithCompletionHandler { (response, error) in
guard let item = response?.mapItems.first else { return }
let annotation = item.placemark
self.mapView.addAnnotation(annotation)
self.mapView.showAnnotations([annotation], animated: true)
self.mapView.selectAnnotation(annotation, animated: true)
}
}
Wenn dies nicht optional ist, ist die Lösung einfach, es nicht auszupacken. – Moritz