Я использую быстрый MapKit MKLocalSearch. Возвращает массив MKLocalSearchCompletion. Однако MKLocalSearchCompletion предоставляет только поля заголовка и субтитров. Я хочу извлечь город и штат из адреса, но простая деконструкция субтитра не работает, поскольку он имеет ненадежный формат (иногда город - это 2-й или 3-й компонент, если вы разделяете его на ",", а иногда и там нет - только почтовый индекс. Я использовал отладчик AppCode и обнаружил, что информация, которую я хочу - аккуратно strcutured - на самом деле потенциально доступна, но она спрятана глубоко в MKLocalSearchCompletion и недоступна (она закрыта). .. Тип: GEOStructuredAddress, и в нем есть все поля, возвращаемые MapKit. Вот как он скрыт в MKLocalSearchCompletion (где self = MKLocalSearchCompletion)
(((((self.addressResults [0] ._ mapItem as! MKMapItem *) ._ geoMapItem as! _GEOPlaceDataItem *) ._ поместить как! GEOPlace *). Адрес как! GEOAddress *) ._ structdAddress как! GEOStructuredAddress *). _administrativeArea
Что я могу сделать, чтобы получить эту информацию? Есть ли другой способ использовать MapKit для создания запроса, который даст мне больше контроля над ответом?
Я уже видел https://stackoverflow.com/a/41718320/5683904, но я не уверен, как использовать его с MKLocalSearchCompleterDelegate. (Я предполагаю, что мне нужно будет использовать MKLocalSearch и создать свой собственный «завершитель» - это единственный способ?)