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 ]

130 голосов
/ 18 июня 2013

Если вы используете симулятор:

  1. Нажмите command + shift + , в Xcode, чтобы открыть редактор схем
  2. Выберите схему запуска
  3. Перейти на вкладку "Параметры"
  4. Чек 101 Allow Location Simulation
  5. Выберите расположение по умолчанию в раскрывающемся списке

Выбор None в качестве местоположения по умолчанию, возможно, вызвал проблему.

102 голосов
/ 21 июля 2011
  1. Убедитесь, что у вас действительно есть действующее соединение WiFi и 3G

    ... если у вас есть, то:

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

  3. Сброс настроек вашей сети

Это должно решить эту проблему.Это связано с устройством / сетью, а не с приложением.Это раздражает, особенно если ваше приложение зависит от служб определения местоположения, а устройство работает только через Wi-Fi, и люди дают отрицательный рейтинг в AppStore ... Простите, я немного волнуюсь.

21 голосов
/ 10 сентября 2014

Просто игнорируйте эту ошибку и дождитесь новых обновлений или другой ошибки.

Документы для менеджера местоположений говорят, что эта ошибка временная.Он сообщает вам, что ему не удалось немедленно получить местоположение, но он продолжает пытаться.«В такой ситуации вы можете просто игнорировать ошибку и ждать нового события».Который является действительно тупым способом использовать метод с именем locationManager:didFailWithError: - Спасибо, Apple!

Apple Documentation

18 голосов
/ 18 декабря 2013

Попробуйте перезапустить симулятор (при условии, что это то, что вы используете).

Попробовав все остальное, это сработало для меня.

14 голосов
/ 09 июля 2014

Перезапуск симулятора у меня не сработал.

Я должен был очистить все через "iOS Simulator" >> "Reset Content and Settings....

9 голосов
/ 23 марта 2015

Я получил эту ошибку на симуляторе.Нажатие кнопки местоположения на панели отладки и установка местоположения устранили проблему для меня.(Убедитесь, что кнопка синего цвета)

enter image description here

7 голосов
/ 30 мая 2011

У меня такая же проблема.Я считаю, что возможные объяснения / исправления описаны в этом посте .

5 голосов
/ 10 апреля 2015
  1. В симуляторе выберите «Настройки»> «Основные»> «Сброс»> «Сбросить местоположение и конфиденциальность»

  2. Выйдите из симулятора и снова запустите приложение

5 голосов
/ 07 ноября 2014

Изменение «Местоположения» на симуляторе сработало для меня.

Отладка> Местоположение> (у меня выбрано «Нет» вместо «Городской велосипед», например)

3 голосов
/ 19 марта 2014

Предполагая, что вы используете симулятор, вы можете Debug -> Location и указать местоположение.

Если вы ничего не выбрали, у вас будет эта ошибка.

...