Как узнать, разрешено ли MKMapView использовать текущее местоположение?
Я показываю местоположение пользователя на mapView с:
self.mapView.showsUserLocation = YES;
Пользователю предлагается AlertView, где он может выбрать, разрешить ли использовать текущее местоположение или нет. Если он нажимает да, все в порядке, и я не беспокоюсь об этом.
Но если он нажимает НЕТ, я бы хотел увеличить масштаб до определенного региона.
Итак, как мне узнать, разрешено ли MKMapView использовать текущее местоположение?
Я нашел решение, в котором я бы создал свой собственный CLLocationManager и его делегат, чтобы увидеть, возвращает ли он отклоненную ошибку. Но это не совсем правильно, зачем вводить новый CLLocationManger, если он мне не нужен.
Разве нет другого пути?
1 ответ
Вам не нужен делегат. Просто используйте метод класса CLLocationManager authorizationStatus
:
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) {
// allowed
} else {
// not allowed
}
Возможные значения:
typedef enum {
kCLAuthorizationStatusNotDetermined = 0,
kCLAuthorizationStatusRestricted,
kCLAuthorizationStatusDenied,
kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;