reverseGeocodeLocation每次都不起作用

时间:2015-06-18 12:33:04

标签: ios cllocation reverse-geocoding clgeocoder

我在reverseGeocodeLocation面临一些奇怪的问题。这就是我的工作。

我从一个view controller推送到另一个didUpdateLocations delegate。查看后,我呼叫当前位置。在reverseGeocodeLocation收到当前位置时,我要求- (void)getReverseLocation { __block CLPlacemark* placemark; CLGeocoder* geocoder = [CLGeocoder new]; [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { if(error) NSLog(@">>>>>>>> Error in reverseGeoLocation - %@", [error localizedDescription]); if (error == nil && [placemarks count] > 0) { placemark = [placemarks lastObject]; completionBlock(placemark); } }]; } 获取地点标记值。

问题

  1. 有时它就像魅力一样
  2. 有时等待并在很长一段时间后显示结果
  3. 有时候我没有得到任何结果。
  4. 以下是获取反向地理位置的代码

    The operation couldn’t be completed. (kCLErrorDomain error 8.)

    我不确定为什么它的表现如此。我在同一个地方,互联网连接很好。

    这是因为线程吗?我也在主线程上尝试了这个。但同样的问题。

    编辑:我收到此错误,经过一些尝试

    reverseGeoCodeLocation错误 - CustomerService cService=new CustomerService();

1 个答案:

答案 0 :(得分:1)

这就是为什么你有时会得到结果,有些则没有。直接来自Apple的地理编码文档

  

应用程序应该意识到它们如何使用地理编码。地理编码请求对每个应用程序都是速率限制的,因此在短时间内发出过多请求可能会导致某些请求失败。 (当超过最大速率时,地理编码器会将值为kCLErrorNetwork的错误对象返回到关联的完成处理程序。)