Я пытаюсь создать функцию, которая будет автоматически заполнять город и штат на основе указанного почтового индекса.
@IBAction func onEditZipCodeField(_ sender: UITextField) {
if let zipCode = self.zipCodeField.text {
let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString(zipCode) {
(placemarks, error) -> Void in
if let placemark = placemarks?[0] {
NSLog("Placemark \(placemark)")
NSLog("administrativeArea: \(placemark.administrativeArea!)")
NSLog("subAdministrativeArea: \(placemark.subAdministrativeArea!)")
NSLog("locality: \(placemark.locality!)")
NSLog("subLocality: \(placemark.subLocality!)")
NSLog("region: \(placemark.region!)")
if let thoroughfare = placemark.thoroughfare {
NSLog("thoroughfare: \(thoroughfare)")
}
if let subThoroughfare = placemark.subThoroughfare {
NSLog("subthoroughfare: \(subThoroughfare)")
}
if let state = placemark.administrativeArea {
self.stateField.text = state
self.stateField.isEnabled = false
}
}
}
}
}
Вот результат, если я введу 11105 в качестве почтового индекса:
2019-10-15 13:51:28.929733-0400 Tello EHR[41880:1614567] Placemark 11105, Astoria, NY 11105, United States @ <+40.77799870,-73.89392290> +/- 100.00m, region CLCircularRegion (identifier:'<+40.77819340,-73.89023345> radius 3741.17', center:<+40.77819340,-73.89023345>, radius:3741.17m)
2019-10-15 13:51:28.929904-0400 Tello EHR[41880:1614567] administrativeArea: NY
2019-10-15 13:51:28.930025-0400 Tello EHR[41880:1614567] subAdministrativeArea: Queens
2019-10-15 13:51:28.930151-0400 Tello EHR[41880:1614567] locality: New York
2019-10-15 13:51:28.930264-0400 Tello EHR[41880:1614567] subLocality: Queens
2019-10-15 13:51:28.930373-0400 Tello EHR[41880:1614567] region: CLCircularRegion (identifier:'<+40.77819340,-73.89023345> radius 3741.17', center:<+40.77819340,-73.89023345>, radius:3741.17m)
Как видите, в объекте метки места есть информация о городе Астория. Однако метка вернула «Нью-Йорк» и «Квинс», когда я попытался получить доступ к методу метки (местность, подобласть).
Кто-нибудь здесь знает, что я должен получить доступ к объекту метки, чтобы он мог вернуть значениеAstoria?
Спасибо.