У меня есть простое приложение, которое показывает MapView.Когда пользователь прокручивает или меняет положение масштабирования на виде карты, я хочу отобразить название страны, которое находится в центре карты.
Итак, я делаю это:
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
MKReverseGeocoder *reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:self.mapView.centerCoordinate];
reverseGeocoder.delegate = self;
[reverseGeocoder start];
}
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated {
self.countryNameLabel.text = @"";
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {
self.countryNameLabel.text = placemark.country;
}
- (void) reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error {
self.countryNameLabel.text = [error localizedDescription];
NSLog(@"%@", [error localizedDescription]);
}
Метод regionDidChangeAnimated вызывается только после завершения прокрутки представления, поэтому не более 1 вызова в секунду.
Иногда возникает ошибка «Операция не может быть завершена. (PBRequesterErrorDomain error 6001.)», поэтомуЯ не могу отобразить название страны.Немного переместив вид карты, можно решить проблему, чтобы отобразилась страна.
Как я могу гарантировать, что я смогу отображать название страны каждый раз, когда пользователь меняет отображение вида карты?
Я прочитал этот пост , но это не помогает.