MKLocalSearchCompleter 不能在物理设备上工作,但在模拟器上工作正常
MKLocalSearchCompleter not working on physical device but works fine on simulator
我的应用程序遇到了一个非常奇怪的问题。当我 运行 在模拟器上发出 MKLocalSearchCompleter 请求时,它工作正常,委托方法被调用并且一切顺利 运行。
但是,在物理设备上尝试时,不再调用委托方法(didUpdateResults(_ :) 和 didFailWithError(_ :))
我尝试在一个全新的项目上测试相同的实现;相同的行为。
当我使用 CLGeocoder 对地址进行地理编码时,它在物理和模拟器上都能正常工作。
我的网络非常好,所有其他网络任务都运行良好。
我的实现非常基础:
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)
}
真的,我已经找了一段时间了,没能找到答案;非常感谢您帮助我!
我不知道它是否有效,但它只是为您提示。
只需在您的 UIViewController 中全局定义 let searchCompleter = MKLocalSearchCompleter()
。
编写下面的语句 viewDidLoad
方法而不是委托方法。
let searchCompleter = MKLocalSearchCompleter()
searchCompleter.delegate = self
我过去在处理 UIImagePickerController
时遇到过相同类型的问题。它对我有用。
谢谢!
我的应用程序遇到了一个非常奇怪的问题。当我 运行 在模拟器上发出 MKLocalSearchCompleter 请求时,它工作正常,委托方法被调用并且一切顺利 运行。
但是,在物理设备上尝试时,不再调用委托方法(didUpdateResults(_ :) 和 didFailWithError(_ :))
我尝试在一个全新的项目上测试相同的实现;相同的行为。
当我使用 CLGeocoder 对地址进行地理编码时,它在物理和模拟器上都能正常工作。
我的网络非常好,所有其他网络任务都运行良好。
我的实现非常基础:
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)
}
真的,我已经找了一段时间了,没能找到答案;非常感谢您帮助我!
我不知道它是否有效,但它只是为您提示。
只需在您的 UIViewController 中全局定义 let searchCompleter = MKLocalSearchCompleter()
。
编写下面的语句 viewDidLoad
方法而不是委托方法。
let searchCompleter = MKLocalSearchCompleter()
searchCompleter.delegate = self
我过去在处理 UIImagePickerController
时遇到过相同类型的问题。它对我有用。
谢谢!