如何在iOS 9.3中从MKLocalSearchCompletion对象中识别出MKMapItem?

8

苹果在iOS 9.3中引入了MKLocalSearchCompleter和MKLocalSearchCompletion。我正在尝试实现它。这变成了一个两步过程 1)输入部分术语 -> 生成完整搜索文本。 2)用户选择其中一个以搜索实际位置。

问题是,如果我搜索200 Townsend,它会给我一个位置列表,但仍然被应用程序视为建议。我们如何确定它是MKMampItem还是建议?

1个回答

12

一个方法是使用MKLocalSearchCompletion初始化MKLocalSearchRequest

let request = MKLocalSearchRequest(completion: completion)

您可以使用 MKLocalSearchRequest 初始化一个 MKLocalSearch

let search = MKLocalSearch(request: request)

您可以开始使用带有 MKLocalSearchResponse?NSError? 的完成处理器的 searchMKLocalSearchResponse? 将具有一个 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"
    }
}

在此处下载苹果官方示例代码,该代码解释了如何从MKLocalSearchCompletion创建MKLocalSearchRequest:https://developer.apple.com/documentation/mapkit/searching_for_nearby_points_of_interest - ChrisJF
这会有被限制速率的风险吗?在调试时进行多次调用时,我遇到了一些问题。 - lolelo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接