iOS9.3中如何从MKLocalSearchCompletion对象中识别MKMapItem?

Posted

技术标签:

【中文标题】iOS9.3中如何从MKLocalSearchCompletion对象中识别MKMapItem?【英文标题】:How to identify the MKMapItem from MKLocalSearchCompletion object in iOS9.3? 【发布时间】:2016-05-10 06:27:20 【问题描述】:

Apple 在 ios 9.3 中引入了 MKLocalSearchCompleter 和 MKLocalSearchCompletion。我正在尝试实施它。它变成了一个两步过程 1) 输入部分词-> 生成完整的搜索文本。 2) 用户选择其中之一搜索实际位置。

问题是,如果我搜索 200 个城镇,它会给我一个位置列表,但直到应用程序将其视为建议。 我们如何识别它是 MKMampItem 还是建议?

【问题讨论】:

【参考方案1】:

一种方法是用MKLocalSearchCompletion 初始化MKLocalSearchRequest

let request = MKLocalSearchRequest(completion: completion)

然后您可以使用MKLocalSearchRequest 初始化MKLocalSearch

let search = MKLocalSearch(request: request)

然后您可以启动search,它有一个带有MKLocalSearchResponse?NSError? 的完成处理程序。 MKLocalSearchResponse? 将有一个 MKMapItem 的数组。

完整示例:

let request = MKLocalSearchRequest(completion: completion)
let search = MKLocalSearch(request: request)
search.startWithCompletionHandler  (response: MKLocalSearchResponse?, error: NSError?) in
    if let error = error 
        // do something with "error"
    
    else if let mapItems = response?.mapItems 
        // do something with "mapItems"
    

【讨论】:

在此处下载 Apple 官方示例代码,该代码解释了如何从 MKLocalSearchCompletion 生成 MKLocalSearchRequest:developer.apple.com/documentation/mapkit/… 这种风险是否会受到限制?在调试中进行多次调用时遇到一些问题

以上是关于iOS9.3中如何从MKLocalSearchCompletion对象中识别MKMapItem?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 9 应用程序关闭时如何向服务器发出请求?

ios9.3无法点开网站链接 ios9.3不能打开Safari内链接怎么解决

如何使用iphone手机进行录屏

如何在 iOS 9.3+ 上从网页打开 Safari 的设置

P3图片导致iOS9.3以下崩溃问题

ios9.3为前端带来哪些新特性