IOS 9 проблема: CLGeocoder Network error code 2


CLLocation *location =[[CLLocation alloc]initWithLatitude:latitude longitude:longitude];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
    NSLog(@"Finding address");
    if (error) {
        NSLog(@"Error %@", error.description);
    } else {
        NSLog(@"%@",placemarks[0]);
    }
}]; }

enum CLError : Int {
        case LocationUnknown
        case Denied
        case Network
        case HeadingFailure
        case RegionMonitoringDenied
        case RegionMonitoringFailure
        case RegionMonitoringSetupDelayed
        case RegionMonitoringResponseDelayed
        case GeocodeFoundNoResult
        case GeocodeFoundPartialResult
        case GeocodeCanceled
        case DeferredFailed
        case DeferredNotUpdatingLocation
        case DeferredAccuracyTooLow
        case DeferredDistanceFiltered
        case DeferredCanceled
        case RangingUnavailable
        case RangingFailure
    }

Здесь я получил одну ошибку в устройстве IOS 9 (в симуляторе это работает хорошо ;-))

Ошибка при геокодировании: Error Domain=Kclerrordomain Code=2 " The операция не могла быть завершена. (ошибка kCLErrorDomain 2.) "

1 3

1 ответ:

Документыговорят: "вы не должны отправлять более одного запроса геокодирования в минуту".

KCLErrorNetwork сеть была недоступна или произошла сетевая ошибка.

На самом деле код отлично работает в IOS8 & IOS7.. его только дает Error в IOS 9.

Его Работа Совершенна.

CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
        [geoCoder cancelGeocode];
        [geoCoder reverseGeocodeLocation:locationManager.location
                       completionHandler:^(NSArray *placemarks, NSError *error)
        {
            NSLog(@"Error is %@",error.localizedDescription);
            for (CLPlacemark *placemark in placemarks) {
                NSLog(@"%@",placemark.ISOcountryCode);
            }
        }];

О/П:

  • Ошибка равна (null)

  • США