У меня есть кнопка найти меня в моем приложении.Поведение, когда пользователь нажимает кнопку, довольно прямолинейно.Если службы определения местоположения отключены, я показываю пользователю предупреждение об этом, в противном случае начинается обновление местоположения.
Чтобы проверить, включены ли службы определения местоположения, я запускаю CLLocationManager
и, если получаю код ошибки kCLErrorDenied
в
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
Я показываю UIAlertView, что служба определения местоположения отключена.
Работает хорошо, но проблема возникает, когда я запускаю CLLocationManager
в первый раз (или пользователь сбрасывает свои местоположениянастройки сервисов).В этой ситуации система показывает предупреждение, которое спрашивает пользователя, если он в порядке, что приложение будет использовать службы определения местоположения, и если пользователь не позволяет использовать службы определения местоположения, я немедленно получаю ошибку в
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
и должен показывать предупреждение второго приложения, что местоположениясервисы отключены для приложения, но это не очень умно, потому что пользователь отключил его всего секунду назад.
Таким образом, вопрос заключается в том, как выяснить, что предупреждение служб определения местоположения системы отображалось на экране, и пользователь отключил службы определения местоположения секунду назад, чтобы не отображать второе предупреждение?