DidFailWithError: Error Domain = kCLErrorDomain Code = 0 "Операция не может быть выполнена. (kCLErrorDomain error 0.)"
Я хочу получить текущее местоположение, но вместо этого получаю сообщение об ошибке.
Это фрагмент моего контроллера представления.
- (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.)"
Ответы
Ответ 1
-
Убедитесь, что у вас есть действующее соединение WiFi и 3G
... если вы это сделаете, то:
-
Зайдите в настройки и сбросьте свои сервисы определения местоположения
- Сброс настроек вашей сети
Это должно решить эту проблему. Это связано с устройством/сетью, а не с приложением. Это раздражает, особенно если ваше приложение зависит от служб определения местоположения, а устройство работает только через Wi-Fi, и люди дают отрицательный рейтинг в AppStore... Извините, я немного волнуюсь.
Ответ 2
Если вы используете симулятор:
- Нажмите
command + shift + ,
в Xcode, чтобы открыть редактор схемы
- Выберите схему запуска
- Перейдите на вкладку "Параметры"
- Проверить ✅
Allow Location Simulation
- Выберите расположение по умолчанию в раскрывающемся меню
Выбор None
, поскольку причиной по умолчанию может быть проблема.
Ответ 3
Просто проигнорируйте эту ошибку и подождите больше обновлений или другой ошибки.
Документы для менеджера местоположений говорят, что эта ошибка является временной. Это позволяет вам знать, что он не смог сразу получить местоположение, но он продолжает пытаться. "В такой ситуации вы можете просто игнорировать ошибку и ждать нового события". Который действительно прост в использовании метода с именем locationManager:didFailWithError:
- Спасибо Apple!
Apple Documentation
Ответ 4
Попробуйте перезапустить симулятор (предполагая, что вы используете).
После прочего все это сработало для меня.
Ответ 5
Повторный запуск симулятора не помог мне.
Мне пришлось очистить все через "iOS Simulator" >> "Reset Content and
Settings...
.
Ответ 6
Я получал эту ошибку на симуляторе. Щелчок по кнопке местоположения на панели отладки и установка местоположения исправил проблему для меня. (Убедитесь, что кнопка синяя)
![enter image description here]()
Ответ 7
У меня та же проблема. Я считаю, что возможные объяснения/исправления охватываются в этом сообщении SO.
Ответ 8
Изменение "Location" на симуляторе сработало для меня.
Отладкa > Местоположение > (Шахта была отмечена None вместо City Bicycle Ride например.)
Ответ 9
Ответ 10
Предполагая, что вы используете симулятор, вы можете Debug -> Location
и установить местоположение.
Если вы не выбрали ни одного, вы получите эту ошибку.
Ответ 11
Если вы используете custom location
, убедитесь, что у вас есть длинный и лат правильный путь, я его отменил и потратил впустую за 3 часа до того, как понял...
Ответ 12
Я видел проблему раньше, есть способ ее решить, но она может работать только один раз. Если вы хотите снова запустить проект, и вам нужно каждый раз повторять это решение.
1. В Xcode, Product → Scheme → Edit Scheme, затем отмените "Разрешить симулятор местоположения".
2. В iOS Simulator и reset Содержимое и настройка.
3.Again для Xcode, повторите первый шаг.
4. В iOS Simulator и reset. Тогда это сработает.
Ответ 13
Такие проблемы можно решить, установив местоположение как "Apple
". По крайней мере, он работает для целей тестирования.
Ответ 14
- Я сбросил содержимое и настройки.
- Удалены данные из полученных данных.
- Перезагрузил Xcode и Simulator и работал у меня.
из ответа @Mem и многих других спасибо
Ответ 15
Для возвращенных разработчиков:) Просто выберите "Debug->Location->Freeway Drive
" в меню Simulator. Если все еще проблема, попробуйте после создания "Simulator → Reset Content and Settings" из меню симулятора. Это помогло мне с той же проблемой. Некоторое время для размещения симулятора установлено значение "Custom location
", из-за которого он ничего не обнаруживает.
Ответ 16
Попробуйте устройство. Иногда симулятор не может занять ваше место.
Ответ 17
Идите домой в симулятор
home → Настройки → Конфиденциальность → Местоположения → выберите приложение и всегда выберите
Ответ 18
при добавлении разрешения Конфиденциальность - Расположение при использовании Описание использования в info.plist было решено за меня
Ответ 19
Если вы используете симулятор, убедитесь, что схема допускает местоположение, и вы выбрали местоположение по умолчанию.
![enter image description here]()