swift - 如何在 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 并创建我自己的“完成器”——这是唯一的方法吗?)
解决方案
推荐阅读
- javascript - 为什么没有垂直滚动条时window.innerWidth不等于outerWidth?
- amazon-web-services - 堡垒和应用服务器 ec2 之间的 vpc 对等问题
- codeigniter - 在 Codeigniter 中发布表单后的 URL 更改问题
- php - 如何在 PHP 中使用 API 在不刷新页面的情况下获取更新的分数
- php - 如何用 wordpress 函数中两个字符串之间的变量替换 wp-post 内容?
- opencart - 在发票打印中添加客户电子邮件和电话号码
- c++ - CMake/MinGW 未知编译器,gcc.exe 损坏
- jquery - tinyMCE 编辑器按钮文本长度太长,我该如何换行?
- c# - 使用tagit jquery在代码后面的文本框中附加多个标签
- solr - Janus Graph HBase 和 Solr 未知外部索引后端:jgex