iOS - CLGeocoder без подключения к интернету

Я использую 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);
}];

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

Не удалось определить текущий код страны: Ошибка Домен =NSURLErrorDomain Код =-1009 "Подключение к Интернету не работает." UserInfo = 0x7877f930 {NSErrorFailingURLStringKey = http://gsp1.apple.com/pep/gcc, _kCFStreamErrorCodeKey = 8, NSErrorFailingURLKey = http://gsp1.apple.com/pep/gcc, NSLocalizedDescription = Интернет-соединение кажется отключенным., _kCFStreamErrorDomainKey=12, NSUnderlyingError=0x7877ed30 "Кажется, что подключение к Интернету отключено."}

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам