Я столкнулся с какой-то странной проблемой с reverseGeocodeLocation
. Вот что я делаю.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);
}
}];
}
Я не знаю, почему его вести себя как это. Я нахожусь в том же месте, и подключение к интернету хорошее.
Это из-за потоков? Я тоже пробовал это на главной теме. Но та же проблема.
Edit: Я получил эту ошибку, после некоторых попыток
ошибок в reverseGeoCodeLocation - The operation couldn’t be completed. (kCLErrorDomain error 8.)
Это веб-сервис с ограничениями и другими ограничениями, см. Документацию Apple. При ошибке проверьте и распечатайте ошибку, чтобы понять, почему. Добавьте информацию об ошибке в вопрос. Также покажите свой код, особенно код completeHandler. – zaph
Да Заф, Просто посмотрел документацию. Я думаю, что нет выбора, а не ждать его, чтобы получить результат. Есть ли другое решение для его получения. – JiteshW
Я пытаюсь поймать ошибку. но теперь он не появляется. Как только я наткнулся на это, я поделюсь им. :) – JiteshW