-2
」初期化子は、オプションの種類ではなく、 『文字列』を持っている必要があります。 私はその面白い再びsender.stringValue
とsender.stringValue?
が、Xcodeの事を試してみました。あなたはちょうどたい"条件付きバインディングの初期化子にはオプションの型が必要ですが、 'string'ではなく、それ以外には何がありますか?結合条件のため
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)
}
}
これがオプションでない場合、解決策は単純にアンラップしないことです。ガードレットは使用しないでください。 – Moritz