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

ios*_*tor 4 ios mklocalsearch mklocalsearchrequest ios9.3

Apple在iOS 9.3中引入了MKLocalSearchCompleter和MKLocalSearchCompletion.我正在努力实现它.它变为两步过程1)输入部分术语 - >生成完整的搜索文本.2)用户选择其中一个来搜索实际位置.

问题是,如果我搜索200个townsend,它会给我一个位置列表,但它会被应用程序视为建议.我们如何识别它是MKMampItem还是建议?

jhe*_*erg 7

一种方法是MKLocalSearchRequest使用a 初始化a MKLocalSearchCompletion.

let request = MKLocalSearchRequest(completion: completion)
Run Code Online (Sandbox Code Playgroud)

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

let search = MKLocalSearch(request: request)
Run Code Online (Sandbox Code Playgroud)

然后你可以启动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"
    }
}
Run Code Online (Sandbox Code Playgroud)