问题描述
我正在使用UISearchBar和UITableView执行MKLocalSearch。
第一个搜索始终效果很好,但是如果您尝试另一个搜索,则应用程序崩溃,并且出现“索引超出范围错误”。让我知道是否需要更多信息,谢谢。
ref.on("child_added",function(snapshot,pevIoUsChildKey) {
// Add to the DOM
})
ref.on("child_changed",pevIoUsChildKey) {
// Update in the DOM
})
ref.on("child_removed",function(snapshot) {
// Remove from the DOM
})
ref.on("child_moved",pevIoUsChildKey) {
// Move in the DOM
})
在尝试第三或第四次搜索后,表中的结果保持不变,并且不再记录任何结果。我收到错误消息:
解决方法
您的问题是您过早更改了searchResults。试试:
func searchBar(_ searchBar: UISearchBar,textDidChange searchText: String) {
print("searchText \(searchText)")
let searchRequest = MKLocalSearch.Request()
searchRequest.naturalLanguageQuery = searchText
let search = MKLocalSearch(request: searchRequest)
search.start { response,error in
guard let response = response else {
print("Error: \(error?.localizedDescription ?? "Unknown error").")
return
}
var newArray: [YourStruct] = []
for item in response.mapItems {
newArray.append(item.placemark)
}
self.searchResults = newArray
self.tableView.reloadData()
}
}