didFailWithError: Ошибка Domain = kCLErrorDomain Code = 0 "Операция не может быть завершена. (ошибка kCLErrorDomain 0.)" - PullRequest
76 голосов
/ 17 мая 2011

Я хочу получить текущее местоположение, но вместо этого я получаю ошибку.

Это фрагмент моего контроллера представления.

- (void)viewDidLoad {
    self.locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
    [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager 
     didUpdateLocations:(NSArray<CLLocation *> *)locations {
    // I would get the latest location here
    // but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error {
    NSLog(@"didFailWithError: %@", error);
}

Я ожидаю метод делегата locationManager:didUpdateLocations: для вызова, но вместо этого вызывается только locationManager:didFailWithError:, который печатает:

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 

Ответы [ 18 ]

2 голосов
/ 03 июля 2015

Я уже видел проблему раньше, есть способ ее решить, но она может работать только один раз. Если вы хотите запустить проект снова и вам нужно повторять решение каждый раз.

1.В Xcode, Product -> Scheme -> Edit Scheme, затем отмените «Allow Location Simulator».

2. В симулятор iOS и сбросьте настройки и контент.

3.Зайдите в Xcode, повторите первый шаг.

4. В симулятор iOS и сброс. Тогда это будет работать.

2 голосов
/ 30 марта 2015

Если вы используете custom location, убедитесь, что у вас есть длинный и правильный путь, у меня это было в обратном порядке и потрачено впустую 3 часа, прежде чем я понял ...

1 голос
/ 05 декабря 2015

Для возвращенных разработчиков :) Просто выберите "Debug->Location->Freeway Drive" в меню симулятора.Если проблема не устранена, попробуйте после выполнения «Симулятор-> Сбросить содержимое и настройки» из меню симулятора.Это помогло мне однажды с той же проблемой.Иногда местоположение симулятора устанавливается на "Custom location", из-за чего он ничего не обнаруживает.

1 голос
/ 02 июля 2015
  1. Я сбросил содержимое и настройки.
  2. Удалены данные из производных данных.
  3. Перезапустил Xcode и Simulator и работал на меня.

из ответа @Mem и многих других, спасибо

1 голос
/ 11 января 2015

Подобные проблемы можно решить, установив местоположение как «Apple».По крайней мере, это работает для целей тестирования.

0 голосов
/ 06 июня 2019

при добавлении разрешения Конфиденциальность - Местоположение при использовании Описание использования в info.plist для меня решено

0 голосов
/ 17 декабря 2017

Иди домой в симуляторе

home -> Настройки -> Конфиденциальность -> Местоположения -> выберите приложение и выберите всегда

0 голосов
/ 10 января 2017

Попробуйте в устройстве.Иногда симулятор не может определить ваше местоположение.

...