我的问题是这段代码。有时它根据坐标检索值,有时它挂起并返回下面的错误输出。不管它有坐标每次和一个有效的用户请求使用位置管理器。
我不明白的是为什么有时它有效,有时却无效。
guard let placemark = placemark else {
print("Error:", error ?? "nil")
return
}
验证码:
let long = locationManager.location?.coordinate.longitude
let lat = locationManager.location?.coordinate.latitude
var userLocation = ""
let location = CLLocation(latitude: lat ?? 0.0, longitude: long ?? 0.0)
location.placemark { placemark, error in
guard let placemark = placemark else {
print("Error:", error ?? "nil")
return
}
print(placemark.postalAddressFormatted ?? "")
let line1 = placemark.streetName ?? ""
let city = placemark.city ?? ""
let state = placemark.state ?? ""
let country = "US"
let postal_code = placemark.zipCode ?? ""
输出:
错误:错误域= kCLErrr域代码=2“(null)”
1条答案
按热度按时间bmp9r5qi1#
您可能连续多次请求该命令。
reverseGeocodeLocation(_:completionHandler:)
从文档:
发起反向地理编码请求后,请勿尝试发起另一个反向或前向地理编码请求。地理编码请求对每个应用都有速率限制,因此在短时间内发出太多请求可能会导致某些请求失败。当超过最大速率时,地理编码器会将值为
CLError.Code.network
的错误对象传递给完成处理程序。