Я хочу узнать текущее местоположение, но вместо этого получаю сообщение об ошибке.
Это фрагмент моего контроллера представления.
- (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.)"
Apple
. если у вас установлен этот параметр,none
он не сработает и выдаст эту ошибку., Я сделал это случайноОтветы:
Убедитесь, что у вас действительно есть действующее соединение WiFi и 3G.
... если да, то:
Зайдите в настройки и сбросьте свои службы определения местоположения
Это должно решить эту проблему. Это связано с устройством / сетью, а не с приложением. Это раздражает, особенно если ваше приложение зависит от служб определения местоположения, а устройство поддерживает только Wi-Fi, и люди дают отрицательные оценки в AppStore ... Простите меня, я становлюсь немного эмоциональным.
источник
Если вы используете симулятор:
command + shift + ,
в Xcode, чтобы открыть редактор схемAllow Location Simulation
Выбор в
None
качестве местоположения по умолчанию мог вызвать проблему.источник
iOS Simulator
>Reset Content and Settings...
Просто проигнорируйте эту ошибку и дождитесь новых обновлений или другой ошибки.
В документации к диспетчеру местоположения говорится, что эта ошибка временная. Он сообщает вам, что не смог сразу получить местоположение, но продолжает попытки. «В такой ситуации можно просто проигнорировать ошибку и дождаться нового события». Это действительно тупой способ использовать метод с именем
locationManager:didFailWithError:
- Спасибо, Apple!Apple Documentation
источник
Попробуйте перезапустить симулятор (при условии, что вы его используете).
После попытки всего остального это сработало для меня.
источник
У меня не получился перезапуск симулятора.
источник
Я получал эту ошибку на симуляторе. Нажатие кнопки местоположения на панели отладки и установка местоположения устранили проблему для меня. (Убедитесь, что кнопка синего цвета)
источник
У меня та же проблема. Я считаю, что возможные объяснения / исправления описаны в этом сообщении SO .
источник
У меня сработало изменение «Местоположение» на симуляторе.
источник
источник
Предполагая, что вы используете симулятор, вы можете
Debug -> Location
указать местоположение.Если вы ничего не выбрали, у вас будет эта ошибка.
источник
Если вы используете,
custom location
убедитесь, что у вас есть длинные и широчайшие правильные пути, я перевернул его и потратил 3 часа, прежде чем я понял ...источник
Я видел эту проблему раньше, есть способ ее решить, но он может сработать только один раз. Если вы хотите запускать проект снова, и вам нужно повторять решение каждый раз.
источник
Подобные проблемы можно решить, установив для местоположения значение "
Apple
". По крайней мере, это работает для целей тестирования.источник
из ответа @Mem и многих других спасибо
источник
Для вернувшихся разработчиков :) Просто выберите "
Debug->Location->Freeway Drive
" в меню симулятора. Если проблема не исчезла, попробуйте после выполнения «Симулятор-> Сбросить содержимое и настройки» из меню симулятора. Однажды это помогло мне с той же проблемой. Некоторое время симулятор установлен на "Custom location
", из-за чего он ничего не обнаруживает.источник
Если вы используете симулятор, убедитесь, что схема позволяет местоположение, и вы выбрали местоположение по умолчанию.
источник
Попробуйте в устройстве. Иногда симулятор не может определить ваше местоположение.
источник
Иди домой в симуляторе
главная страница -> Настройки -> Конфиденциальность -> Местоположение -> выберите приложение и выберите всегда
источник
при добавлении разрешения Privacy - Location When In Use Usage Description в info.plist это было решено для меня
источник