Проблема в вашем случае является то, что error
является Error?
ссылка в Swift 3, больше не NSError?
. Таким образом, ваш вынужденный бросок терпит неудачу. Вы можете исправить это следующим образом:
geocoder.geocodeAddressString(address, completionHandler: {(placemarks: [CLPlacemark]?, error: Error?) -> Void in
} as! CLGeocodeCompletionHandler)
Но as! CLGeocodeCompletionHandler
не требуется. Если это предложило бросить, возможно, это произошло только потому, что он заметил, что ваше закрытие не соответствует типу.
Честно говоря, даже проще, просто дайте ему вывести правильные типы и вам не придется беспокоиться о такого рода вопрос:
geocoder.geocodeAddressString(address) { placemarks, error in
}
попробовать удалить «, как! CLGeocodeCompletionHandler ', почему вы вынуждаете кастинг? –
см. Http://stackoverflow.com/questions/32655247/geocoder-geocodeaddressstring-no-longer-works-with-swift-update-today –
Поскольку компилятор Swift продолжает помещать листинг в код. – jimijon