2015-09-15 1 views
3
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 
    } 

Ici, je suis une erreur dans l'IOS 9 périphérique (dans le simulateur, il fonctionne bien ;-))IOS 9 question: CLGeocoder code d'erreur réseau 2

Erreur lors de géocodage: Erreur de domaine = kCLErrorDomain code = 2 « L'opération n'a pas pu être terminée. (erreur kCLErrorDomain 2.) »

+0

Il y a 1 google api qui peut être une bonne alternative. Reportez-vous ma réponse ici http://stackoverflow.com/a/40670608/2033377 –

Répondre

0

Le docs disent « vous ne devriez pas envoyer plus d'une demande de géocodage par minute ».

kCLErrorNetwork Le réseau était indisponible ou une erreur réseau s'est produite.

En fait, le code fonctionne bien dans IOS8 & IOS7 .. sa ne donne que Error dans IOS 9.

Son travail parfait.

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); 
      } 
     }]; 

O/p:

  • erreur est (null)

  • US