Как идентифицировать MKMapItem из объекта MKLocalSearchCompletion в iOS9.3?

Apple представила MKLocalSearchCompleter и MKLocalSearchCompletion в iOS 9.3. Я пытаюсь это реализовать. Это становится двухэтапным процессом 1) введите неполный термин -> генерируется полный текст поиска. 2) Пользователь выбирает один из них для поиска фактического местоположения.

Вопрос в том, что если я найду 200 таунсендов, это даст мне список мест, но пока приложение не будет рассматриваться как предложение. Как мы можем определить, является ли это MKMampItem или предложением?

1 ответ

Одним из способов сделать это является инициализация MKLocalSearchRequest с MKLocalSearchCompletion,

let request = MKLocalSearchRequest(completion: completion)

Затем вы можете инициализировать MKLocalSearch с MKLocalSearchRequest,

let search = MKLocalSearch(request: request)

Затем вы можете начать search который имеет обработчик завершения с MKLocalSearchResponse? а также NSError?, MKLocalSearchResponse? будет иметь массив MKMapItem"S.

Полный пример:

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"
    }
}
Другие вопросы по тегам