Реализация Rough Swift 3 с использованием замыканий:
import CoreLocation
func getAddressFrom(location: CLLocation, completion:@escaping ((String?) -> Void)) {
let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
if let placemark = placemarks?.first,
let subThoroughfare = placemark.subThoroughfare,
let thoroughfare = placemark.thoroughfare,
let locality = placemark.locality,
let administrativeArea = placemark.administrativeArea {
let address = subThoroughfare + " " + thoroughfare + ", " + locality + " " + administrativeArea
placemark.addressDictionary
return completion(address)
}
completion(nil)
}
}
Использование:
getAddressFrom(location: location) { (address) in
print(address)
}
Вы также можете посмотреть на placemark.addressDictionary
- словарь, содержащий ключи адресной книги и значения для метки. Эти ключи определены в структуре адресной книги.