任何想法,为什么我可能会得到下面的错误时,启动一个MKLocalSearch?我到处都找过了,似乎找不到任何关于这方面的信息。
打印的错误是(来自guard let):搜索企业失败:错误域=MKErrorDomain Code=2“(null)”UserInfo={MKErrorGEOError=-7}
let searchSpan = MKCoordinateSpan(latitudeDelta: 0.000018011, longitudeDelta: 0.000018011)
let searchRegion = MKCoordinateRegion(center: location, span: searchSpan)
let searchRequest = MKLocalSearch.Request()
searchRequest.region = searchRegion
searchRequest.resultTypes = .pointOfInterest
searchRequest.naturalLanguageQuery = "bar"
let search = MKLocalSearch(request: searchRequest)
search.start { response, error in
guard let mapItems = response?.mapItems else {
print("Failed searching for businesses: ", error!)
return
}
1条答案
按热度按时间ccrfmcuu1#
我想说的是,我得到的错误是一个服务器错误,由于MKLocalSearch请求过载。原因是,当我从我的LocationManager调用.startUpdatingLocation()时,我会得到多个坐标,这将触发多个搜索请求(因为我已经这样设置了)。我在网上找不到如何避免在调用.stopUpdatingLocation()后返回多个坐标的方法,所以我决定在请求中添加一个debouncer,这样一次只能发送一个。这似乎解决了我的问题。