didFailWithError: Error Domain=Kclerrordomain Code=0 " не удалось завершить операцию. (ошибка kCLErrorDomain 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.)"
17 ответов:
проверьте, что у вас действительно есть действительное соединение Wi-Fi и 3G
...если да, то:
перейдите в настройки и сбросьте свои службы определения местоположения
- Сброс настроек сети
Это должно решить эту проблему. Это связано с устройством / сетью, а не с приложением. Это раздражает, особенно если ваше приложение зависит от услуг, расположение и устройство WiFi только и люди дают негативные рейтинги в AppStore... Простите, я тут немного волнуюсь.
Если вы используете тренажер:
- пресс
command + shift + ,в Xcode, чтобы открыть редактор схемы- выбрать программу
- перейдите на вкладку Параметры
- Регистрация
Allow Location Simulation- выберите расположение по умолчанию в раскрывающемся списке
выбор
NoneКак ваше местоположение по умолчанию, возможно, вызвало проблему.
просто игнорировать эту ошибку и ждать дальнейших обновлений или иной ошибки.
документы для диспетчера местоположений говорят, что эта ошибка является временной. Это дает вам знать, что он не смог сразу получить местоположение, но он продолжает пытаться. "В такой ситуации можно просто игнорировать ошибку и ждать нового события."Это действительно тупой способ использовать метод с именем
locationManager:didFailWithError:- Спасибо Apple!
попробуйте перезапустить симулятор (предполагая, что вы используете).
после попытки все остальное это работало для меня.
перезапуск симулятора не сработал для меня.
Я должен был очистить все через
"iOS Simulator" >> "Reset Content and Settings....
Я получаю эту ошибку на тренажере. Нажатие кнопки расположение на панели отладки и установка местоположения исправили проблему для меня. (Убедитесь, что кнопка синего цвета)
У меня та же проблема. Я считаю, что возможные объяснения / исправления покрыты в должности.
изменение "местоположения" на симуляторе сработало для меня.
отладка > местоположение > (у меня нет вместо города на велосипеде например)
в симуляторе перейдите в Настройки > Общие > Сброс > Сброс местоположения и конфиденциальности
выйти из симулятора и снова запустить приложение
предполагая, что вы используете симулятор, вы можете
Debug -> Locationи установить местоположение.Если у вас нет ни одного выбранного вы будете иметь эту ошибку.
Если вы используете
custom locationубедитесь, что у вас есть длинный и lat правильный путь, я его перевернул и потратил 3 часа, прежде чем понял...
Я вижу проблему раньше,есть способ ее решить,но она может работать только один раз.Если вы хотите запустить проект снова, и вам нужно повторять решение каждый раз.
1.In Xcode, Product - > Scheme - > Edit Scheme,затем отмените "разрешить симулятор местоположения".
2.To симулятор iOS и сброс содержимого и настроек.
3.Снова к Xcode, повторите первый шаг.
4.To симулятор iOS и сброс. Затем это сработает.
такие проблемы можно решить, установив местоположение как"
Apple". По крайней мере, это работает для целей тестирования.
- я сбросил содержимое и настройки.
- удалены данные из производных данных.
- перезапустил Xcode, а симулятор и работал на меня.
из ответа @Mem и многих других спасибо
для возвращенных разработчиков:) просто выберите"
Debug->Location->Freeway Drive" из меню симулятора. Если все еще проблема, то попробуйте после выполнения "симулятор- > сброс содержимого и настроек" сформировать меню симулятора. Это помогло мне однажды с той же проблемой. Некоторое время расположение симулятора установлено на "Custom location" из-за чего он ничего не обнаруживает.
перейти к дому в тренажере
главная страница - > Настройки - > Конфиденциальность - > места - > выберите приложение и выберите всегда

Comments