首页 > 解决方案 > 如何在 swift MKLocalSearch 中访问城市和地址

问题描述

我正在使用 swift MapKit MKLocalSearch。它返回一个 MKLocalSearchCompletion 数组。但是,MKLocalSearchCompletion 只公开标题和副标题字段。我想从地址中提取城市和州,但简单地解构字幕是行不通的,因为它的格式不可靠(有时城市是第二或第三部分,如果你用“,”分割它,有时它不存在 - 只有一个邮政编码。我使用了 AppCode 的调试器,发现我想要的信息 - 整齐的结构 - 实际上是可能可用的,但它深埋在 MKLocalSearchCompletion 中,并且无法访问(它是私有的)。 .. 类型是 GEOStructuredAddress 并且它具有 MapKit 返回的所有字段。这是它在 MKLocalSearchCompletion 中的隐藏方式(其中 self = MKLocalSearchCompletion)

((((((self.addressResults[0]._mapItem as!MKMapItem *)._geoMapItem as!_GEOPlaceDataItem *)._place as!GEOPlace *)._address as!GEOAddress *)._structuredAddress as!GEOStructuredAddress *)._administrativeArea

我可以做些什么来获取这些信息?是否有不同的方法来使用 MapKit 进行查询,这将使我能够更好地控制响应?

我已经看到了https://stackoverflow.com/a/41718320/5683904但我不确定如何将它与 MKLocalSearchCompleterDelegate 一起使用。(我假设我需要使用 MKLocalSearch 并创建我自己的“完成器”——这是唯一的方法吗?)

标签: swiftmapkit

解决方案


推荐阅读