苹果在iOS 9.3中引入了MKLocalSearchCompleter和MKLocalSearchCompletion。我正在尝试实现它。这变成了一个两步过程 1)输入部分术语 -> 生成完整搜索文本。 2)用户选择其中一个以搜索实际位置。
问题是,如果我搜索200 Townsend,它会给我一个位置列表,但仍然被应用程序视为建议。我们如何确定它是MKMampItem还是建议?
苹果在iOS 9.3中引入了MKLocalSearchCompleter和MKLocalSearchCompletion。我正在尝试实现它。这变成了一个两步过程 1)输入部分术语 -> 生成完整搜索文本。 2)用户选择其中一个以搜索实际位置。
问题是,如果我搜索200 Townsend,它会给我一个位置列表,但仍然被应用程序视为建议。我们如何确定它是MKMampItem还是建议?
一个方法是使用MKLocalSearchCompletion
初始化MKLocalSearchRequest
。
let request = MKLocalSearchRequest(completion: completion)
您可以使用 MKLocalSearchRequest
初始化一个 MKLocalSearch
。
let search = MKLocalSearch(request: request)
您可以开始使用带有 MKLocalSearchResponse?
和 NSError?
的完成处理器的 search
。 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"
}
}
MKLocalSearchCompletion
创建MKLocalSearchRequest
:https://developer.apple.com/documentation/mapkit/searching_for_nearby_points_of_interest - ChrisJF