2015-02-22 3 views
2

Я использую CLGeocoder, чтобы найти адреса на карте и рассчитать расстояние пользователя по сравнению со всей связью адресов.iOS - CLGeocoder без подключения к Интернету

Вот часть кода, который использует CLGeocoder:

CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
__block float distance; 
__block CLLocation *location; 
[geocoder geocodeAddressString:adresseFinal completionHandler:^(NSArray *placemarks, NSError *error) { 
    if ([placemarks count] > 0) { 
     CLPlacemark *placemark = [placemarks objectAtIndex:0]; 
     location = placemark.location; 
     CLLocationCoordinate2D coordinate = location.coordinate; 
     distance = [userLocation distanceFromLocation:location]; 
     [distanceArray addObject:[NSString stringWithFormat:@"%f", distance]]; 
     MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; 
     point.coordinate = coordinate; 
     point.title = tableNoms[i]; 
     NSMutableArray *coords = [[NSMutableArray alloc] init]; 
     [coords addObject:location]; 
     [coords addObject:userLocation]; 
     [self.mapView addAnnotation:point]; 
    } 
    dispatch_group_leave(group); 
}]; 

Но когда я пытаюсь использовать его без подключения к Интернету, я получаю следующее сообщение об ошибке:

Could not determine current country code: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo=0x7877f930 {NSErrorFailingURLStringKey= http://gsp1.apple.com/pep/gcc , _kCFStreamErrorCodeKey=8, NSErrorFailingURLKey= http://gsp1.apple.com/pep/gcc , NSLocalizedDescription=The Internet connection appears to be offline., _kCFStreamErrorDomainKey=12, NSUnderlyingError=0x7877ed30 "The Internet connection appears to be offline."}

Я думал, что я был в состоянии использовать локализацию без Интернета (используя GPS?)?

Должен ли я что-то изменить в своем коде, чтобы иметь возможность использовать его?

Большое спасибо!

ответ

4

Геокодирование - это не то же самое, что и геолокация. GPS используется для определения вашей геолокации, и в результате это положение широты/долготы. Геокодирование - это процесс преобразования этой геолокации и соответствующих данных адреса.

Хотя геолокация не требует подключения к Интернету, геокодирование выполняется, потому что это поиск в базе данных Apple, чтобы найти адрес для геолокации.

+0

Кроме того, локализация - это процесс, позволяющий вашему приложению использовать несколько языков и, как таковой, не связан с физическими местоположениями. – Wain

+0

Спасибо за ответ, это достаточно ясно. О, и я плохой для локализации ... глупой ошибкой. Большое спасибо ! –

Смежные вопросы