Я недавно играл с MKReverseGeocoder и нашел его несколько ненадежным.Иногда номер улицы не возвращался, а в некоторых случаях SubAdministrativeArea был нулевым.Кроме того, значение Locality (city) в некоторых случаях было нулевым.
Использование MKReverseGeocoder делает вас зависимым от источника данных, который может не соответствовать вашим ожиданиям.Например, поиграв с ним в Нью-Йорке, я заметил, что иногда Квинс возвращается в Местность (город), а Бруклин отображается как SubAdministrativeArea (округ).
Вы можете легко проверить это поведение в разных штатах,настройте MKMapView и попробуйте разные точки или просто получите определенный набор координат из разных штатов / городов / стран и запустите их в тестовом приложении.
Вы также можете попробовать использовать API геокодирования Карт Google напрямую, так как он вернет несколько результатов вместо одного.Тем не менее, это, вероятно, потребует больше работы, так как вам нужно выполнить анализ вручную.Вот пример ответа .