"Не разрешать" в LocationManager ведет журнал ошибок

У меня есть приложение, которое проверило местоположение. Он просит пользователя использовать местоположение, и если пользователь говорит "нет" в меню, возникает проблема при загрузке карты.

Как только я выбираю mapView, он снова запрашивает местоположение пользователя. Если пользователь снова говорит "нет", моя консоль продолжает отображать ошибки / предупреждения, а также мой NSLog из "didFailWithError" моего класса Location Manager.

Есть ли способ остановить Location Manage: didFailWithErrors, если пользователь уже сказал нет? Я не думаю, что Apple примет мое приложение, если файл журнала будет заполнен моим Location Manager

Вот пример того, что повторяется в консоли

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user

2 ответа

Решение

Документация по -didFailWithError: Метод говорит:

Если пользователь отрицает использование приложением службы определения местоположения, этот метод сообщает об ошибке kCLErrorDenied. Получив такую ​​ошибку, вы должны остановить службу определения местоположения.

Поэтому после получения этой ошибки вы должны отправить сообщение менеджеру местоположения, чтобы прекратить обновление местоположения:

[manager stopUpdatingLocation];

Если вы используете MKMapView, я думаю, настройка его showsUserLocation Свойство НЕТ должно сделать свое дело.

Вы несете ответственность за проверку кода ошибки и прекращение обновления местоположения, если код ошибки kCLErrorDenied,

Другие вопросы по тегам