«Не разрешать» в LocationManager продолжает регистрировать ошибки - PullRequest
1 голос
/ 15 марта 2010

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

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

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

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

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 ]

4 голосов
/ 15 марта 2010

Документация по методу -didFailWithError: гласит:

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

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

[manager stopUpdatingLocation];

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

0 голосов
/ 15 марта 2010

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

...