У меня возникла очень странная проблема с моим приложением. Когда я запускаю запрос MKLocalSearchCompleter на симуляторе, он работает нормально, вызываются методы делегатов, и все работает гладко.
Но при попытке на физическом устройстве методы делегатов больше не вызываются (ни didUpdateResults (_ :) и не сделалFailWithError (_:))
Я попытался протестировать ту же реализацию в новом проекте; такое же поведение.
Когда я геокодирую адрес с помощью CLGeocoder, он отлично работает как на физическом, так и на симуляторе.
Моя сеть очень хорошая, и все остальные сетевые задачи работают хорошо.
Моя реализация очень проста c:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
let searchCompleter = MKLocalSearchCompleter()
searchCompleter.delegate = self
searchCompleter.queryFragment = searchBar.text!
}
func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) {
print(completer.results)
searchQueryResults = [MKLocalSearchCompletion]()
completer.results.forEach { (result) in
self.searchQueryResults!.append(result)
}
researchTable.alpha = 1.0
researchTable.reloadData()
}
func completer(_ completer: MKLocalSearchCompleter, didFailWithError error: Error) {
print(error)
}
Я действительно долго искал и не смог найти ответ; Большое спасибо за помощь!